通常当我想将标签移动到右侧20px或仅增加视图宽度时,我会通过以下途径之一
label.frame = CGRectMake(label.frame.origin.x+20, label.frame.origin.y, label.frame.size.width, label.frame.size.height);
或
CGRect viewFrame = view.frame;
viewFrame.x += 20;
view.frame = viewFrame;
我并不特别喜欢任何变体的代码量,并且希望你们知道我没有发现的捷径
答案 0 :(得分:17)
向右移动的更好方法是CGRectOffset
宏:
label.frame = CGRectOffset(label.frame, 20.0f, 0.0f);
我发现这更清楚地表达了我的代码的意图。
答案 1 :(得分:2)
添加:
Here's一篇包含精彩CGRect技巧的文章(收缩,扩展,边缘插入,相交)
答案 2 :(得分:0)
我尽可能使用center
来修改原点:
myView.center = CGPointMake(150, 150);
甚至更好:
myView.center = anotherView.center;
修改尺寸frame
或bounds
是唯一的方法。您可以使用CGGeometry中的各种CGRect
函数来表达更高级别的转换。