最近离开了老东家,整理整理思路,因为一直做的是微信公众号相关的产品对app的东西有一段时间没有做过了,所以又看了一遍iOS human interface guidelines,看到user control的时候有了一些感慨,所以用这篇文章记录下.可能有些同学没有看过相关的内容这里先把中文版(@喵大神经)的相关小节贴出来: 在iOS内部,是用户--而不是应用--在控制.应用可以对一系列用户行为提供建议,或对可能造成严重后果的行为发出警告,但不应该替用户做决定.好的应用会在让用户主导和避免不想要的…
iOS 人机交互指导方针(iOS Human Interface Guidelines) 太阳火神的漂亮人生 (http://blog.csdn.net/opengl_es) 本文遵循"署名-非商业用途-保持一致"创作公用协议 转载请保留此句:太阳火神的漂亮人生 -  本博客专注于 敏捷开发及移动和物联设备研究:iOS.Android.Html5.Arduino.pcDuino.否则,出自本博客的文章拒绝转载或再转载,谢谢合作. UI 设计基础 UI Design Basics 为 i…
1. 引言1.1 译者自述 我是一个表达能力一般的开发员,不管是书面表达,还是语言表达.在很早以前其实就有通过写博客锻炼这方面能力的想法,但水平有限实在没有什么拿得出手的东西分享.自2015年7月以来因工作及个人的兴趣开始逐步转向iOS开发,在这期间系统的学习了下斯坦福桥大学Paul老爷子关于iOS7,iOS8的视频公开课及苹果官方的开发文档.当然也包括这篇<iOS Human Interface Guildlines> ,半年的学习下来碰到最大的问题就是遗忘,很多知识点学过没多久就忘记了,必…
弹出框 弹出框是当人们点击一个控件或屏幕上一个区域时显示的一个暂时的界面. API NOTE 在iOS 8及以后的系统中.你能够使用UIPopoverPresentationController来显示一个弹出框. UIPopoverPresentationController定义了一个协议来让你调整你的弹出内容的显示风格去适应当前的显示环境.比方说.在水寻常规环境下.你的内容能够在弹出框中显示:在水平紧凑环境下,你的内容能够在一个全屏的模态视图中显示. 一个弹出框: 是一个自包括的模态视图 在水…
多任务处理 多任务处理让人们在屏幕上(以及合适的iPad模式)查看多个app,而且在近期使用的app中高速地切换. 在iOS 9中.人们能够使用多任务处理UI(例如以下所看到的)来选择一个近期使用的app. 在多任务处理环境中的成功取决于与设备上其它app的和谐共处.在高层面上.这意味着app应该: 用心地优化资源的使用来避免使用过多的CPU.内存.屏幕控件和其它资源 优雅地处理其它app的干扰和声音 停止和又一次開始--即过渡到后台或从后台过渡--高速而平滑 当没有在前台时对行为负责 以下的特…
搜索栏 搜索栏接收用户输入用于搜索的文本(例如以下,带有占位文本). API NOTE 查看UISearchBar学习怎样在你的代码中定义搜索栏.查看UISearchDisplayController学习很多其它关于显示搜索栏的内容. 搜索栏能够显示一些可选的元素.比如: 占位文本.这个文本可能陈述了控件的功能(比方上面显示的"搜索")或提醒用户他们在何种环境搜索(比方"Goodle"). 书签button. 这个button能够提供一个訪问用户想要方便再次找到的信…
Wallet Wallet(钱包)帮助人们查看和管理Pass(凭证),这是一种相似于登机牌.优惠券.会员卡.奖励卡和各种票的物理凭证的数字替代.Wallet也同意人们加入信用卡.借记卡和储值卡来和Apple Pay一起使用.在你的app中.你能够创建一个Pass,将其分配给用户,然后当内容更改时更新它. PassKit 框架使自己定义内容来接收Pass以及当用户的Pass库中有它的时候使用Pass变得easy. (查看Wallet Developer Guide来学习关于Wallet的主要技术以…
系统button 系统button运行一个app特定的动作. API NOTE 在iOS 7中,UIButtonTypeRoundedRect被又一次定义成UIButtonTypeSystem.查看UIButton学习很多其它关于在你的代码中定义一个系统button的内容. 一个系统button: 默认没有边框或者背景外观 能够包括一个图片或者文本标题 支持自己定义外观.比方边框或者背景图片(使用UIButtonTypeCustom类型的button并提供一个自己定义的背景图来加入自己定义的外观…
编辑菜单 用户能够显示一个编辑菜单来在文本视图.网页视图和图像视图运行诸如剪切.粘贴和选择的操作. 你能够调整一些菜单的行为来在你的app中给用户给多的内容控制.比方你能够: 指定哪一个标准菜单命令对当前的环境合适 在菜单显示之前决定菜单的位置这样你就能够保护你app UI中重要的部分免于被遮挡 当用户双击来显示菜单时决定默认选中的对象 你不能改变菜单它自己的颜色和形状. 查看Copy, Cut, and Paste Operations获取怎样在代码中实现这些行为的信息. 为了确保你app中的…
分段控件 分段控件是一组线性段.每一个button相应的功能能够显示一个不同的视图. API NOTE 查看UISegmentedControl来学习很多其它关于在你的代码中定义一个分段控件的内容. 一个分段控件: 组合两个或很多其它的分段,其宽度是基于分段总数按比例分的 能够显示文本或图片 使用分段控件来提供紧密相关而又相互排斥的选项. 确保每一个分段都易于点击. 给每一个分段维持44*44的舒适的点击区域.限制分段的数量.在iPhone上,分段控件的分段数应该小于等于5. 尽可能地使每一个分…
容器视图控制器 容器视图控制器管理和展示它的子视图集合--或者子控制器集合--以一种自己定义的方式. 系统定义的容器视图控制器的样例有标签栏视图控制器.导航栏视图控制器和分栏视图控制器(查看Tab Bar.Navigation Bar和Split View Controller来学习很多其它关于这些元素的内容). API NOTE 查看UIViewController Class Reference学习关于在你的代码中定义自己定义的容器视图控制器的内容. 容器视图控制器没有提前定义的外观和行为.…
开发之前需要想到的: 1.列出所有用户可能喜欢的功能. 例子:食谱 (1)创建一个总的食谱菜单 (2)食谱的获取方法  (3)比较价格 (4)当地的食材店 (5)食谱每道菜的注释 (6)能够获取和使用的优惠券  (7)使用图片或者视频的形式演示烹饪的过程 (8)显示不同的烹饪方法,或进行新的探索 (9)发现可以代替的食材 2.确定谁是你的用户群 你需要考虑一个很重要的问题:对于他们来说什么才是最重要的? 例子:食品杂货店  ,  面对顾客你会有提问顾客是否: (1)经常在家烹饪或者趋向于现成的食…
Human Interface Design It’s not enough to create an app that works. Users expect Mac apps to be powerful, intuitive, and engaging. Think about the user experience as you design every aspect of your app, from the features you choose to the pointer you…
与直接在UIView控件上绘图不同,在内存中绘图时,需要开发者自己准备绘图环境,Quartz 2D提供了一个非常便捷的函数:UIGraphicsBeginImageContext(CGSize size),该函数用于准备绘图环境.当图形绘制完成后,可调用UIGraphicsEndImageContext()函数结束绘图和关闭绘图环境. 总结来说,在内存中绘图的步骤如下. 调用UIGraphicsBeginImageContext(CGSize size)函数准备绘图环境. 调用UIGraphic…
iOS之在webView中引入本地html,image,js,css文件的方法   2014-12-08 20:00:16CSDN-sky_2016-点击数:10292     项目需求 最近开发的项目,需要一个webView,同时这个webView会需要引入一些项目中的资源: 一个本地的html文件,作为webView的模板 两张loading图片,在图片未加载的时候进行占位 jquery.js,scrollLoading.js 也是本地的,实现滚动加载图片功能 然后就开始了漫长的Google…
上次转载了一篇<将你的网站打造成一个iOS Web App>,但偶然发现这篇文章的内容有些是错误的——准确来说也不是错误,只是不适合自半年前来的情况了(也可以说是iOS7 之后的时间)——话说现在的的移动设备真是日新月异.好了,结合Jeff 查阅的资料,下面来详细来说说iOS / Android 移动设备中的 touch icons. 关于 “Touch icons” favicons 知道是什么吧?浏览器的tab 前面的那个小图标,放入某个网站到收藏夹的时候也会看到,这个可以说是pc 互联网…
<iOS 自定义控件开发(上)> <iOS 自定义控件开发(中)> 接上篇iOS自定义控件开发之后,我们尝试另外一种. 在Xcode的右边,会看到如下的图 其中,上面有一个:Custom Class. 那就是代表着我们可以直接使用这个Custom Class来自定义我们的类咯~ #0 第一次尝试 将Class字段填入我们所写的自定义控件名. 然后修改我们上次写的ChartViewController文件.删除之前的关联,重新关联这个View. // // ChartViewCont…
iOS已发布应用中对异常信息捕获和处理 iOS开发中我们会遇到程序抛出异常退出的情况,如果是在调试的过程中,异常的信息是一目了然,但是如果是在已经发布的程序中,获取异常的信息有时候是比较困难的. iOS提供了异常发生的处理API,我们在程序启动的时候可以添加这样的Handler,这样的程序发生异常的时候就可以对这一部分的信息进行必要的处理,适时的反馈给开发者. 不足的地方是,并不是所有的程序崩溃都是由于发生可以捕捉的异常的,有些时候是因为内存等一些其他的错误导致程序的崩溃,这样的信息是不在这里体…
ios从相册/摄像头中获取视频 如何从相册中获取视频 使用的是一个和获取照片相同的类UIImagePickerController //相册中获取视频 - (IBAction)clickViedoOFAlbramAction:(id)sender{ UIImagePickerController *viedoCtr = [[UIImagePickerController alloc] init];//创建一个获取视频的类 viedoCtr.sourceType = UIImagePickerCo…
重点:Triggered by Thread这句话后边的线程号,快速定位问题出现在那个线程,是否是你的锅:Triggered by Thread所指的线程表示导致异常.崩溃的线程 下边内容转自简书 简介 当一个应用程序崩溃, 会产生一个崩溃报告(crash report) ,并存储到那个设备.崩溃报告描述了应用程序崩溃的条件,大多数情况会包含每个执行线程的一个完整的回溯,对我们调试应用程序的问题是非常有用的.你应该查看崩溃报告来了解你应用程序有什么崩溃,然后尝试修复它们. 崩溃报告必须被符号化(…
原地址http://213style.blogspot.com/2013/09/usb-human-interface-device.html 恩,發本文的原因是看到了以前畢業的朋友在旁邊的對話框問了一些問題,我想這些問題   不是三言兩語可以解釋完畢,但是我也不想又太細究 HID 內部描述表格的解說與視窗上 HID APIs 家族詳細使用方法,主要以偏向解決問題與實作面上的一些重點,希望可以有些 許幫助,因為詳細的文獻找 USB Complete: The Developer's Guide…
Interface Builder,是用于苹果公司Mac OS X操作系统的软件开发程序,Xcode套件的一部分,于1988年创立.它的创造者Jean-Marie Hullot自称是“一个热爱旅行.充满激情的摄影师”,本篇分享Hullot热爱技术的那一面——创造Interface Builder的过程. 因势而动 1981年, Jean-Marie Hullot拿到巴黎第十一大学的计算机科学博士资格后,开始了法国国家信息与自动化研究所(INRIA)的研究生活. Jean-Marie Hullot…
iOS 如何自定义UISearchBar 中textField的高度 只需设置下边的方法就可以 [_searchBar setSearchFieldBackgroundImage:[UIImage imageNamed:@"search"] forState:UIControlStateNormal];…
//1.1获取在Xcode项目打开的情况下创建的Plist文件 NSString *path = [[NSBundle mainBundle]pathForResource:@"ProfessionClassify" ofType:@"plist"]; //1.2定义数组接收文件 NSMutableArray *tempArray = [NSMutableArray arrayWithContentsOfFile:path]; //2.1获取ios项目沙盒中的Pli…
IOS获取物理尺寸中7Plus中获取的是7的物理尺寸: 在开发调试过程中我的7Plus手机获取[uiscreen mainscreen].bounds为750  .1334. 解决方案:在手机中的显示与亮度更改为标准,就可以解决办法.一般情况下都是以物理尺寸来判断手机的启动页和广告的.毕竟如果用 + (NSString *)iphoneType { struct utsname systemInfo; uname(&systemInfo); NSString *platform = [NSStr…
bundle也可以称之为包(package). 它在iOS和OS X中实际为一个文件夹但却当成单独的文件来对待. 每一个app都有一个bundle,并且你可以通过在xxx.app图标上右击鼠标然后选择"查看包内容"(Show Package Contents)来进入到bundle文件夹的内部.…
http://www.usblyzer.com/usb-human-interface-device-hid-class-decoder.htm   Human Interface Device (HID) Class Decoder Human Interface Device (HID) class is one of the most frequently used USB classes. The HID class consists primarily of devices that…
IOS的AppDelegate方法中的事件触发调用 参考:http://blog.sina.com.cn/s/blog_a573f7990101bphp.html //当应用程序将要进入非活动状态执行,在此期间,应用程序不接受消息或事件,比如来电 - (void)applicationWillResignActive:(UIApplication *)application { NSLog(@"应用程序将要进入非活动状态,即将进入后台"); } //应用程序已经进入后台运行 - (vo…
[iOS系列]-oc中特有的语法 oc数据类型: 1,基本类型 2,对象类型 3,id 4,BOOL 5,block 6,SEL 1:category 使用继承关系来扩充一个类,有一个弊病,高耦合性 category(分类,类别) 能够帮我们扩充一个类的功能 1,只要是在原类中生成的成员变量都可以在分类中直接访问,不能在分类中生成员变量 2,如果分类中定义实现了与原类中相同的方法,那么原类中的方法相当于被覆盖掉了. 注:在实际的开发中,最好不要出现方法覆盖 //指向函数的指针 void test…
iOS解决json串中的NSNull类型   后端返回的数据中总会出现一些NSNull类型,当我们一处理程序就会崩溃,因此想到把返回的数据中的NSNull类型全部转换成@""空字符串.下面是转化方法: 1 自定义的几个方法:放在NSDictionary类别中 #pragma mark - 私有方法 //将NSDictionary中的Null类型的项目转化成@"" +(NSDictionary *)nullDic:(NSDictionary *)myDic { NSA…