2011-02-24 46 views
7

我在玩UIbuttons,只是为了感受一下他们可以做些什么。我目前只有一个问题:*修改* UIbutton位置(Iphone SDK)

我如何修改 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等的值?

回答

5

都能跟得上。注意'someview.frame'按值返回CGRect,而不是通过引用或指针或其他。这就是为什么你得到'需要Lvalue'的错误。

但是,设置框架就像你正在做的很快。

+0

嘿,谢谢你的回答:)很高兴知道! – 2011-02-24 20:08:26

13

我通常不喜欢这样:

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

做的有趣的方式复制当前帧!应该帮助:) – 2011-02-24 20:07:32

+0

保持你的代码可读性,+1 – 11684 2012-04-28 14:54:17

4

frame属性是只读的。你可以做的是

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