*修改* UI按钮位置(Iphone SDK)

时间:2011-02-24 19:46:34

标签: ios iphone uibutton

我正在玩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等的值?

3 个答案:

答案 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;