2009-07-13 48 views
1

我正在尝试使按下时增长的UIButton。目前,我有我的按钮的按下事件下面的代码(的Tim's answer提供):按下UIButton时移动

#define button_grow_amount 1.2 
CGRect currentFrame = button.frame; 
CGRect newFrame = CGRectMake(currentFrame.origin.x - currentFrame.size.width/button_grow_amount, 
           currentFrame.origin.y - currentFrame.size.height/button_grow_amount, 
           currentFrame.size.width * button_grow_amount, 
           currentFrame.size.height * button_grow_amount); 
button.frame = newFrame; 

运行然而,当这使得我的按钮,向上移动,向左每次它按下时。有任何想法吗?

回答

4

您可以使用CGRectInset

CGFloat dx = currentFrame.size.width * (button_grow_amount - 1); 
CGFloat dy = currentFrame.size.height * (button_grow_amount - 1); 
newFrame = CGRectInset(currentFrame, -dx, -dy); 
+0

这个工作!谢谢! – RCIX 2009-07-13 23:40:20

1

你需要一些圆括号在那里我敢打赌。请记住,除法之前发生分割。

另外,CGRectMake的前两个参数决定了按钮在屏幕上的位置,而后两个参数指示了尺寸。所以如果你只是想改变按钮尺寸,只需设置最后两个参数。

#define button_grow_amount 1.2 
CGRect currentFrame = button.frame; 
CGRect newFrame = CGRectMake((currentFrame.origin.x - currentFrame.size.width)/button_grow_amount, 
          (currentFrame.origin.y - currentFrame.size.height)/button_grow_amount, 
          currentFrame.size.width * button_grow_amount, 
          currentFrame.size.height * button_grow_amount); 

button.frame = newFrame;