我正在尝试找到设置控件位置的最简单方法。
所以这可以设置对象+ 100px:
[panel setFrame:CGRectMake(
panel.frame.origin.x, panel.frame.origin.y + 100,
panel.bounds.size.width, panel.bounds.size.height)
];
但当然这很痛苦。
不幸的是,这不起作用:
panel.frame.origin.y += 100; // Compiler error
[panel setPosY:100]; // has no effect of my control
是不是有一种简单的方法来设定位置?
答案 0 :(得分:3)
您始终可以使用对象的center属性:
panel.center = CGPointMake(panel.center.x, panel.center.y + 100);
这可能是最简单的方法。
答案 1 :(得分:2)
我所知道的最优雅的方式是:
panel.frame = CGRectOffset(panel.frame, 0.0f, 100.0f);
答案 2 :(得分:1)
这应该有效,并且比初始代码略短:
CGRect frame = panel.frame;
frame.origin.y += 100;
panel.frame = frame;
但仍然不是很漂亮。
答案 3 :(得分:0)
如果你想把它移开并减少长度(所以它在同一个地方结束)你可能想尝试以下(感谢racha的想法)
// Make space at start of label
CGRect frame = mainLabel.frame;
frame.origin.x += 100;
frame.size.width -= 100;
mainLabel.frame = frame;