UIKit简介|青训营笔记

178 阅读3分钟

这是我参与「第四届青训营-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)右侧都可以显示不同的访问器(如下图所示)。开发人员可以编写访问器触发事件来实现不同的功能。

image.png

UICollectionView

集合视图(可以自定义的表格视图)。

总结

UIKit提供了非常多可供开发人员直接使用的控件,让我们可以非常简单地实现最基础的视觉效果。当然,我们也可以灵活使用各种控件的属性和方法,从而实现更高级的视觉和交互效果。以上的各种视图(滚动视图,表格视图,集合视图)都有各自的优劣,以及在日常生活中的实用例子。我们应该根据自己所想要实现的视觉效果,灵活挑选和搭配各种视图和常用控件。