修改UIbutton位置(iPhone SDK)

7

我正在尝试使用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就创建一个新的CGrect似乎效率不高。

有没有办法直接设置senderB.frame.origin.x等的值呢?

3个回答

13

我通常这样做:

CGRect buttonFrame = button.frame;
buttonFrame.origin.y += 10;
button.frame = buttonFrame;

有趣的做法!应该会有所帮助 :) - Georges Oates Larsen

5

不对。请注意,'someview.frame' 返回的是 CGRect 类型的值,而不是引用、指针或其他类型。这就是为什么会出现“需要 Lvalue”的错误提示。

然而,像你所做的那样设置 frame 是非常快的。


4

frame属性是只读的。你可以使用以下方法复制当前帧:

CGRect btFrame = senderB.frame; 
btFrame.origin.x += 10;
senderB.frame = btFrame;

网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接