iOS视图变换、环境与布局深度解析
1. 视图变换(Transform)
视图的 transform
属性可改变视图的绘制方式,如改变视图的大小和方向,但不影响其 bounds
和 center
。变换后的视图仍能正常工作,例如旋转后的按钮依然可点击。
1.1 变换值(CGAffineTransform)
变换值是 CGAffineTransform
类型,它是一个结构体,代表 3×3 变换矩阵中的 6 个值(另外 3 个是常量)。通常有旋转、缩放、平移三种基本变换类型,而倾斜变换没有初始化方法。
默认情况下,视图的变换矩阵是 CGAffineTransform.identity
,即单位变换,它没有可见效果。任何应用的变换都围绕视图的中心进行。
1.2 变换示例代码
let v1 = UIView(frame:CGRect(113, 111, 132, 194))
v1.backgroundColor = UIColor(red: 1, green: 0.4, blue: 1, alpha: 1)
let v2 = UIView(frame:v1.bounds.insetBy(dx: 10, dy: 10))
v2.backgroundColor = UIColor(red: 0.5, green: 1, blue: 0, alpha: 1)
self.view.addSubview(v1)
v1.add