本文将为你演示CGSize的使用
首先导入需要使用到的两个框架
1 import UIKit 2 import QuartzCore
定义一个尺寸对象,尺寸对象包含宽度和和高度两个参数。
从右侧的结果可以看出,此时该尺寸对象的宽度和高度都是0
let zeroSize = CGSize.zero
初始化另一个尺寸对象,并设置它的宽度为20,高度为10
let size = CGSize( 20, height: 10)
查看该尺寸对象的高度和宽度的数值
1 size.width 2 size.height
从输出的尺寸对象的字符描述可以看出,
尺寸对象由大括号包括,
并由宽度和高度两个值组合而成
size.debugDescription
通过仿射变换,可以对尺寸对象进行变形。
在此初始化一个仿射变换对象,并设置其值为原始值
let transform: CGAffineTransform = CGAffineTransform.identity
将仿射变换对象在水平和垂直方向上,各平移10点的距离
let moveTransform = transform.translatedBy(x: 10, y: 10)
然后给尺寸对象应用平移后的仿射变换。
从右侧输出的结果可以看出,尺寸对象的宽度和高度没有发生变化。
let secondSize = size.applying(moveTransform)
接着将仿射变换对象在水平方向上放大两倍,垂直方向上保持不变
let rotateTransform = moveTransform.scaledBy(x: 2.0, y: 1.0)
然后给尺寸对象应用缩放后的仿射变换。
从右侧输出的结果可以看出,
尺寸对象的宽度增加至两倍大小,而高度没有发生变化
let thirdSize = size.applying(rotateTransform)
判断两个尺寸大小是否相同,由于第三个尺寸对象是经常缩放变形的,
所以它们的尺寸并不相同。
thirdSize.equalTo(size)
判断两个尺寸大小是否相同
thirdSize.equalTo(CGSize( 40, height: 10))
尺寸对象和字符串也是可以相互转换的。通过系统提供的函数,
可以很方便地将格式化后的字符串,转化为尺寸对象。
let fifthSize = CGSizeFromString("{200,100}")