这是我参与「第四届青训营-iOS专场」笔记创作活动的第2天。我将会简单介绍一下iOS开发中常用到的UIKit以及一些简单常用的组件。
首先,什么是UIKit?
UIKit可以看作是一个提供iOS界面操控的框架或API库。它提供一系列的类来建立和管理应用程序的UI 接口、事件控制、绘图模型、窗口和用户与屏幕交互等的接口。
1. 视图
UIView是UIKit中提供所有视图的基础。它可以处理屏幕的触摸事件,也可以支持简单绘图,滑动,以及渐变动画。
一些更加高级的图形处理功能,比如阴影,圆角,透明蒙版,以及3D变换和多级非线性动画,UIView是不支持的。这个时候可以用到 CALayer(图层) 的一些方法和属性来处理这些高级的视觉效果。
注意:CALayer不可以用于处理用户的交互或事件的响应。
2. 视觉效果
以下将列举一些CALayer中的方法与属性以及它们可实现的视觉效果。
- CAShapeLayer
- 可用于创造更高级和灵活的圆角直角组合
- borderWidth 属性
- 图层边框的宽度
- 默认值为0
- borderColor 属性
- 图层边框的颜色
- 默认值为黑色
- 是一个CGColorRef类型的值
- shadowOpacity 属性
- 浮点数
- 值需位于0.0与1.0中间
- 0.0代表完全透明,1.0代表完全不透明
- shadowRadius 属性
- 阴影半径
- shadowRadius越大,阴影的深度越明显
- shadowColor 属性
- 阴影的颜色
- shadowOffset 属性
- 阴影偏移
- shadowPath 属性
- 可用于在涂层的形状之外指定阴影的形状
- 是一个CGPathRef类型的值
- mask 属性
- 图层蒙版
- 是一个CALayer类型的值
- minification 与 magnification
- 拉伸图片
- 使用默认过滤器
kCAFilterLinear(双线性过滤)
- alpha 属性
- 用来控制图层的透明度
以上方法及属性可以灵活组合运用,来达到对图层想要的视觉效果。
3. 常用组件
UITextView
文本视图控件,是一个支持区域内文本编辑的文本域编辑视图。
优点:当区域内每一行内容溢出时,可以自动换行,并且提供可反复查看的滚动条。
UIScrollView
滚动视图,需要用户与屏幕的拖拽或缩放交互来显示当前屏幕以外的内容。
优点:可以支持在有限的屏幕上显示非常丰富的图片或者内容。
UITableView
表格视图,可以将内容按照行,列分组显示。
优点:由于用户见面可显示的行数有限,UITableView会对数据进行自动的滚动处理,即当用户往下滚动时,之前的数据会被自动放进回收池,从而减少占用内存。
注:表格视图中的每一个Cell (UITableViewCell)右侧都可以显示不同的访问器(如下图所示)。开发人员可以编写访问器触发事件来实现不同的功能。
UICollectionView
集合视图(可以自定义的表格视图)。
总结
UIKit提供了非常多可供开发人员直接使用的控件,让我们可以非常简单地实现最基础的视觉效果。当然,我们也可以灵活使用各种控件的属性和方法,从而实现更高级的视觉和交互效果。以上的各种视图(滚动视图,表格视图,集合视图)都有各自的优劣,以及在日常生活中的实用例子。我们应该根据自己所想要实现的视觉效果,灵活挑选和搭配各种视图和常用控件。