前言
hihi,勇敢的小伙伴儿们大家好,平常我总是只会简单的使用CGRect,CGPoint,CGSize,发现自己真的low到不行···所以今天来跟大家一起学习一下CGGeometry中的一些方法。
CGGeometry参考定义几何结构和功能,操作简单。数据结构中的一个点CGPoint代表在一个二维坐标系统。数据结构的位置和尺寸CGRect代表的一个长方形。数据结构的尺寸CGSize代表宽度和高度。
正文
1.CGRect中的CGRectGet
CGGeometry中提供了取特定CGRect值的便捷方法。
- CGRectGetMinX
- CGRectGetMinY
- CGRectGetMidX
- CGRectGetMidY
- CGRectGetMaxX
- CGRectGetMaxY
- CGRectGetWidth
- CGRectGetHeight
这其中CGRectGetMidX,CGRectGetMidY,CGRectGetMaxX,CGRectGetMaxY四个方法十分有用。
用CGRectGetMaxX代替 frame.origin.x + frame.size.width 将是代码更加清晰、语义上也更为生动直观。
另外三个方法也同样,他们都可以用来代替类似这样的代码。
- CGRectGetMidX 用来替代 frame.origin.x + frame.size.width / 2.
- CGRectGetMidY 用来替代 frame.origin.y + frame.size.height / 2.
- CGRectGetMaxX 用来替代 frame.origin.y + frame.size.width
- CGRectGetMaxY 用来替代 frame.origin.y + frame.size.height
emmm暴风哭泣!用了它们几个基本不用再繁琐的计算了,超级方便!
这时候你也许会想到,那CGRectGetMinX,CGRectGetMinY和CGRectGetWidth,CGRectGetHeight四个方法是不是也是用来替代类似这样的代码。
- CGRectGetMinX 用来替代 frame.origin.x
- CGRectGetMinY 用来替代 frame.origin.y
- CGRectGetWidth 用来替代 frame.size.width
- CGRectGetHeight 用来替代 frame.size.height
答案是肯定的。但是这四个方法看起来却不是那么的方便,因为跟直接调用比,这样写代码要更长,emmmm,对于没用过这个的程序员来讲,读代码的难度也增加了。不建议这么写。
而且如果想要唤起 Xcode 的联想,最少需要输入“CGRectGet”八个字母。而直接调用通常只需要输入“f”,“.o”,“.x”五个字母就能联想完成。经过性能测试,CGRectGetMin