我正在玩UI按钮,只是为了了解可以用它们做些什么。到目前为止我只有一个问题:
如何修改 UIButton的位置?
- (IBAction)buttonClicked:(id)sender
{
UIButton *senderB = sender;
CGPoint position = senderB.frame.origin;
CGSize size = senderB.frame.size;
senderB.frame = CGRectMake(position.x,position.y + 10,size.width,size.height);
}
上面的工作正常,但是,每次我想简单地更改时创建一个新的CGrect对我来说似乎效率很低。
有没有办法让我直接设置senderB.frame.origin.x等的值?
答案 0 :(得分:13)
我通常这样做:
CGRect buttonFrame = button.frame;
buttonFrame.origin.y += 10;
button.frame = buttonFrame;
答案 1 :(得分:5)
不。请注意,'someview.frame'按值返回CGRect,而不是通过引用或指针等返回。这就是为什么你得到'Lvalue required'错误。
但是,设置框架就像你正在做的那样快得多。
答案 2 :(得分:4)
frame属性是只读的。你可以做的是用
复制当前帧CGRect btFrame = senderB.frame;
btFrame.origin.x += 10;
senderB.frame = btFrame;