我写了太多这段代码:
self.frame.origin.y + self.frame.size.height
这有什么捷径吗?像self.frame.y_plus_height
?
如果有,我不确定这个好消息或坏消息是否一直都是我写的完整句子。
答案 0 :(得分:10)
这应该可以解决问题:
CGFloat res = CGRectGetMaxY(self.frame);
可以找到文档here。
编辑:根据rob mayoff的解释(见评论),这比在代码中简单地总结origin.y + size.height
要贵一点。
答案 1 :(得分:3)
由nfarina创建的UIView
上有一个很棒的类别。
查看here。
使用此类别,您可以获得此视图的“最大Y”或“底部”(其中self
是视图):
CGFloat maxY = self.$bottom;
此类别非常棒,因为它也可以让您轻松设置框架属性。例如,要将视图移动到右侧3个点,您可以执行以下操作:
self.$x += 3.0f;
答案 2 :(得分:2)
我意识到这要求Objective-C,但是对于那些使用Swift并绊倒这个问题的人,你可以创建一个CGRect扩展:
extension CGRect {
func maxYinParentFrame() -> CGFloat {
return self.origin.y + self.size.height
}
}
然后您可以在任何地方使用它。
let mySize = myView.frame.maxYinParentFrame()