- 博客(24)
- 收藏
- 关注
原创 ios 约束(七)
用宏来创建约束规则 用约束规则来排布控件的位置是相当可靠的。不过,就其本身来说,他们非常繁琐而且特别冗长。开发者要一次又一次的编写很难懂的方法调用语句。 约束规则调用起来也特别麻烦。一个简单的拼写错误就会耗费很多时间,而且许多应用程序所使用的约束规则都是一样的。如果可以预先定义一些宏,那么就能把排布视图所用的代码写的更易懂且更加可靠。假如要把某视图与另外一个视图
2016-12-30 17:09:26 341
原创 ios 约束(六)
1、实现约束规则之间的对比 所有的约束规则都遵循同一套固定的结构,而且都有相关的优先级: view1.attribute(relation)view2.attribute*multiplier + constant 上述等式的每个部分都与NSLayoutConstraint对象的属性相对应,他们分别是priority、firstItem。firs
2016-12-30 10:05:13 688
原创 ios 约束(五)
1、用格式字符串将试图对齐并灵活调整其尺寸 通过约束规则,我们很容易就能指定视图的对齐方式: 1、“H:|[self]”、“H:[self]|”、“V:[self]|”、“V:|[self]”这4种格式字符串分别产生左对齐、右对齐、顶部对齐及底端对齐的效果。 2、向上述字符串中添加表示尺寸关系的谓词,即可实现拉伸至左边界、拉伸至右边界等效果:“H:
2016-12-25 09:50:12 551
原创 ios 约束(四)
1 格式字符串 1、方向 字符串开头的哪个可选项目表示约束规则所针对的方向,H:表示水平方向,V:表示垂直方向。意思是说,这条规则所约束的是左右方向的布局还是上下方向的布局。假如省略该项目,那么默认就表示左右方向。比方说有这样一个约束字符串:“H:[view1][view2]”,它的含义就是把view2直接放在view1右侧。H表示这条约束规则所针对的方向。
2016-12-24 22:54:38 544
原创 ios 约束(三)
创建约束规则 通过NSLayoutConstraint类,开发者可以用两种方式来创建约束规则。可以用一个相当长的方法调用语句来指明视图的某个属性与其他属性之间的关系,并描述这些属性之间的联系,也可以用一种写起来非常短小的格式化语言来指定视图在水平方向与垂直方向上的排布形式。 记住:无论怎么样构建约束规则,他们所产生的结果都是类似“y关系mx + b”这样的关系式。不
2016-12-24 20:55:46 456
原创 ios 约束(二)
1、约束系统的运作规律 可以认为约束系统所用的数学算是非常严格,实际上它们只是个参考。iOS会找到对符合约束的一种布局方案,有的时候,这种方案不止一套。下面给出约束系统的一些基本特征: 1、约束规则描述的是关系,而不一定是视图在某个方向上的属性。未必非要在知道右边界的情况下才能算出左边界。 2、每条约束规则都有其优先级。优先级的取值范围是从0到10
2016-12-19 23:52:03 722
原创 ios 约束(一)
1、什么是约束 约束就是一系列描述iOS程序视图布局的规则。他们限定了视图之间的关系,也限定了视图的布局形式。使用约束时。我们可以说“这些视图在水平方向上必须对齐”,或是“此视图必须根据另一个视图来调整自身高度,以便与之相符”。约束向开发者提供了一套布局语言,使得可以向视图里添加约束,并以此来描述各视图的空间关系。 iOS负责通过一套约束满足系统来实现这些布局需
2016-12-19 14:18:36 948
原创 ios 剪贴板
剪贴板为操作系统提供了一块集中存放数据的区域,使得应用程序之间可以共享数据。用户可以在某个程序里复制一份数据,然后切换到其他程序,将那份数据黏贴到那个程序里。大部分操作系统里面都有与剪切、复制、粘贴操作类似的功能。此外,用户也可以在同一个应用程序内部的文本框与视图之间复制并粘贴数据,而开发者则可以创建应用程序专用的剪贴板,它里面存放的数据,其他程序无法解读。 UIPasteboard
2016-12-19 10:25:30 3406
原创 ios 统一类型标识符
统一类型标识符是iOS系统在分享信息时所使用的中心组件,可以将他们看成是新一代的MIME类型。UTI是一种字符串,能够表示诸如图像及文本等资源类型。UTI指明了程序之间将要共用的数据对象是何类型。他们并不依赖于原有的各种指示符,比如文件扩展名、MIME类型或是OSType等与文件类型有关的元数据。UTI用一种更新颖、更灵活的技术取代了原有的那些技术。 UTI的命名遵循反向域名样式
2016-12-19 09:56:13 2133
原创 ios 定制UICollectionViewFlowLayout类实现网格布局
默认的流式布局会自动换行,以便使区段中的条目能够使用集合视图的长度或宽度,但这样做出来的视图只能在一个方向上滚动。如果愿意多做一些数学运算,就可以编写自定义的布局子类,从而实现不会换行的双向滚动视图。实现该功能所需要的运算律比较大,而且不是特别容易。完全定制了UICollectionViewFlowLayout的子类,覆写了collectionViewContentSize及layoutA
2016-12-12 23:51:41 2967
原创 ios 检查设备距离与电池状态及判断是否是Retina显示屏
通过UIDevice类所提供的API,开发者可以追踪设备的某些特征,比方说电池的状态以及距离感应器的状态等。1、启用与禁用距离感应器目前来说,距离感应器是iPhone特有的功能。iPod touch和iPad并没有提供距离感应器。除非我们有强烈的理由要判断iPhone与用户是否贴的很近,否则距离感应器没有多大用处。启用距离感应器之后,他的主要任务就是判断设备正前方是否有比较大的物体。如
2016-12-10 23:57:22 1496
原创 ios UIDevice类以及Info.plist文件
访问基本的设备信息UIDevice类提供了与设备有关的一些重要属性,包括iPhone、ipad或者iPod touch的型号、设备名称、OS名称以及OS版本。通过这种一站式解决方案,我们可以获知系统的一些详细信息。每项属性都要通过实例方法来获取。可以从UIDevice中获取的设备信息有:1、systemName——该属性返回当前操作系统的名称。对于目前的iOS设备来说,只有一种系统运行
2016-12-09 23:40:04 649
原创 ios 辅助功能
通过辅助功能,开发者可以把iOS应用程序提供给身体有障碍的人士使用。系统的General Settings里面包含一些辅助功能,可以把显示的内容放大,并反转界面颜色等。而对于开发者来说,辅助功能主要是围绕着VoiceOver来实现的,它可以令视障用户“听”到程序的GUI。VoiceOver能够以声音来描述程序的图形界面。 不要把VoiceOver与Voice Control或Si
2016-12-09 22:18:50 3491
原创 ios 语音合成
苹果公司在iOS7中添加了文字转语音的功能,这对于辅助功能和其他任务来说都是非常有用的工具,可以帮助用户浏览内容或增加程序的趣味。可以用AVSpeechSynthesizer和AVSpeechUtterance类来说出任意字符串。对于长篇文本来说,这项功能非常方便,它令开发者可以获得比使用VoiceOver时更为精细的控制权,从而能够以编程的方式控制语音,包括选定发音内容和时机,以及调整音调和语速
2016-12-08 22:38:53 866
原创 ios 动态字体
一直以来,iOS的辅助功能都可以令应用程序与某些能力相配合,并适应很多的限制。用户可以调整显示设置,以影响设备上所安装的全部程序。 要想在程序中使用动态字体,必须通过preferredFontForTextStyle方法来选中字体,并传入下面几种样式之一:// Font text styles, semantic descriptions of the intended use
2016-12-08 10:32:06 516
原创 ios 创建圆形布局
创建圆形布局 圆形布局是一种醒目的排版方式,他会将试图里的内容绕着某个中心区域来排布,这种布局方式很好的演示了如何在创建条目和删除条目的时候,把操作过程以动画形式展现出来。 通过collectionViewContentSize方法把视图内容的尺寸设为固定值。由于它明确的创建了一块固定不变的排版区域,所以集合视图不会再滚动了。代码还会在prepareLayout方法
2016-12-08 09:52:44 1363 1
原创 ios UICollectionViewController集合视图(四)
采用流式布局的简单集合视图在这里制作了简单的集合视图控制器,并且使开发者可以指定它的头部和尾部。这里写了关键的数据源方法与委托方法,以便实现简单的网格状流式布局。苹果公司提供了很多属性,开发者可以通过与集合视图有关的一些委托方法,以及UICollectionViewDelegateFlowLayout协议中的委托方法来提供与这些属性相对应的值。并且稍微调整一下源代码,修改视图中的区段数量、每个
2016-12-06 22:26:34 573
原创 ios UICollectionViewController集合视图(三)
流式布局由UICollectionViewFlowLayout类所提供的流式布局会在应用程序里创建出网格状的界面。他们有一些内置的属性,开发者既可以直接设置这些属性,也可以通过委托回调来提供属性的值。这些属性用来指定布局对象应该如何配置自己,才能把各条目适当的显示在屏幕上面。从最简单的角度来说,这些布局属性可以看作一份与几何特征有关的字典,他们描述了行间、缩进,以及条目之间的留白等特性。1
2016-12-06 00:27:56 502
原创 ios UICollectionViewController集合视图(二)
创建集合视图 与表格一样,集合视图也有两种用法,一种是直接使用集合视图,另一种是使用系统预置的控制器。开发者可以构建一份单独的集合视图实例,并把它添加到界面中,也可以使用更为方便的UICollectionViewController对象,该对象是个预先制备好的视图控制器,其中带有一份集合视图。这个控制器会自动把视图的数据源及委托设置成该控制器本身,而且还会宣称自己遵从两个相关的协议。
2016-12-05 22:14:28 360
原创 ios UICollectionViewController集合视图(一)
集合视图与表格的异同 UICollectionView实例会把各项数据展示成一份有序的集合。与表格视图一样,集合视图也由单元格、头部及尾部构成,而且由数据源方法及委托方法所驱动。但与表格不同的地方在于,集合视图还引入了与布局有关的类,这个类用来制定各条目应该如何摆放在屏幕上。该类负责管理每个单元格的位置,使得对应的条目可以在必要时出现在适当的地方。 两者都提供了
2016-12-05 16:17:47 392
原创 ios UIDatePicker类
有时可能需要请用户输入日期信息。苹果公司提供了非常好的UIPickerView子类(在我的上一篇博客中讲解了UIPickerView的使用),用于处理几种日期与时间的输入。创建UIDatePickerUIDatePicker的创建过程与UIPickerView的相同,两者的布局方式也一样。创建好的UIDatePicker对象之后,就简单多了。我们不需要设置委托,也不需要定义数据源方法,而且
2016-12-05 00:12:58 306
原创 ios 构建含有多个滚轮的表格
有时用户需要从一份很长的列表中选择某个条目,或是需要同时从多份列表中分别做出选择。UIPickerView实例很适合这些情况下。UIPickerVIew对象制作出的表格提供了很多各自独立的滚轮。用户可以通过操作这些滚轮来做出选择他们使用的独特的数据源协议和委托协议:1、没有UIPickerViewController类。UIPickerView实例扮演其他视图的子视图。在应用程序里,它们并
2016-12-04 23:43:12 400
原创 ios 编辑表格功能
编辑表格添加编辑功能之后,表格就会变得丰富起来。编辑功能可以令表格里的静态信息变成能够滚动的互动式控件,从而使用户可以添加或者移除数据。虽说处理编辑功能所要的代码有些复杂,但同样的技术却可以反复运用在各种应用的程序中。我们只要掌握了“进入编辑状态”、“离开编辑状态”,以及“实现撤销功能”等基础知识,就能把他们移用到其他程序上面。效果图主要代码如下:@implementation V
2016-12-04 00:23:48 2312
原创 ios 录制视频
在这个时代很多设备都带了摄像头,但我们还是得判断运行程序的这台设备到底有没有摄像头,此外,还要判断摄像头的类型。录制视频之前,应用程序应该先检查设备是否支持基于摄像头的视频录制。这个过程要分成两步执行。只检查设备有没有摄像头是不够的,因为第一代iPhone及iPhone 3G虽然有摄像头,但却没有录制视频的功能,只有3GS及后续的机型才可以录制视频。虽说不太可能,但苹果公司将来没准还会推出带有
2016-12-02 00:40:11 432
空空如也
空空如也
TA创建的收藏夹 TA关注的收藏夹
TA关注的人