(self.frame.origin.y + self.frame.size.height)有快捷方式吗?

时间:2013-08-13 16:55:27

标签: ios objective-c

我写了太多这段代码:

self.frame.origin.y + self.frame.size.height 

这有什么捷径吗?像self.frame.y_plus_height

这样的东西

如果有,我不确定这个好消息或坏消息是否一直都是我写的完整句子。

3 个答案:

答案 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()