iOS基础 UIView

UIVIew

UIView之所以能显示是因为其内部的CALayer对象,实际上执行绘图的是CALayer对象,UIView其实更像是CALayer对象的管理控制器。

UIView的继承关系

NSObject > UIResponder > UIView

UIView常用的成员属性

  • backgroundColor背景色
  • alpha 透明度
  • hidden 隐藏
  • clipsToBounds 切边

UIView的几何属性

  • Frame:描述UIView的大小以及在父控件上的位置。
  • Bounds:描述UIView的大小以,x、y坐标皆为0。
  • Center:用于确定视图的中心点位置,参照系是其父控件的坐标系统,在对View进行放大缩小、旋转时,该center值不会改变。

UIView视图的嵌套以及层次关系

因为一般情况下,后添加的子视图在视图层次上是会覆盖前子视图的。所以使用一下方法可以调整子视图的层次关系。

  • insertSubview 在指定位置插入视图。
  • bringSubview 将指定的子视图移动到最前或最后。
  • exchangeSubview 交换同一父控件下两子视图的位置。
  • removeFromSuperview 将子视图从父控件中移除。

UIView的交互属性

设置UIView的userInteractionEnable可以激活用户的交互特性

UIView的变形操作

CGAffineTransform仿射转换结构体代表一种用于仿射变换的矩阵。

结构体的参数指定从一个坐标系转化为另一个坐标系的点的规则。

我们使用仿射变换的时候,通常不会重新创建一个新的,而是在原有的仿射变换结构体上稍加修改。例如:

//获取现有的仿射变换结构体
let transform = view.transform
//在原有的仿射变换结构体上稍加修改
view.transform = transform.translatedBy(x: 0, y: 100)

几种常用常见的仿射变换

  • CGAffineTransformMakeTranslation 指定xy平移
  • CGAffineTransformTranslate 现有的矩阵平移
  • CGAffineTransformMakeRotation 指定角度旋转
  • CGAffineTransformRotation 现有的矩阵旋转
  • CGAffineTransformMakeScale 指定xy缩放
  • CGAffineTransformScale现有的矩阵缩放
  • CGAffineTransformInvert 反转矩阵
  • CGAffineTransformConcat 仿射变换效果叠加

仿射变换是以视图的center为基点的。并且仿射变换改变的只是视觉上的位置大小,实际上其frame的参数并没有被改变,也就是说,每次进行仿射变换的时候,都是以原本的坐标矩阵变换,其结果并不会保存累加下来。

自定义仿射变换

以上常见的仿射变换都是系统预封装好的。但我们可以通过 CGAffineTransformMake(sx,shx,shy,sy,tx,ty) 六个CGFloat参数进行自定义的视图仿射变换。

  • sx 水平方向上的缩放因子
  • sy 垂直方向上的缩放因子
  • shx 水平方向上的斜切因子
  • shy 垂直方向上的斜切因子
  • tx 水平方向上的位移因子
  • ty 垂直方向上的位移因子

猜你喜欢

转载自blog.csdn.net/kkkenty/article/details/124796424
今日推荐