按下UIButton时移动
问题描述:
我正在尝试使按下时增长的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;
运行然而,当这使得我的按钮,向上移动,向左每次它按下时。有任何想法吗?
答
您可以使用CGRectInset:
CGFloat dx = currentFrame.size.width * (button_grow_amount - 1);
CGFloat dy = currentFrame.size.height * (button_grow_amount - 1);
newFrame = CGRectInset(currentFrame, -dx, -dy);
答
你需要一些圆括号在那里我敢打赌。请记住,除法之前发生分割。
另外,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;
这个工作!谢谢! – RCIX 2009-07-13 23:40:20