我试图以这种方式动画减少UIButton的大小和宽度:
[UIView animateWithDuration:0.5
delay:0.0
options: UIViewAnimationCurveEaseInOut
animations:^{
[button setFrame:CGRectMake(button.frame.origin.x, button.frame.origin.y, 0, 0)];
[button setCenter:CGPointMake(button.frame.origin.x, button.frame.origin.y)];
}
completion:^(BOOL finished){
...
按钮尺寸减小,但中心不是恒定的。如果您知道我的意思,我希望它能够自行关闭,就像您删除IOS应用程序一样
答案 0 :(得分:3)
在当前帧上使用CGRectInset
生成一个比原始帧更小(或更大)的新帧,同时保持中心点。
[button setFrame:CGRectInset(button.frame, button.frame.size.width * 0.5, button.frame.size.height * 0.5)];
答案 1 :(得分:1)
使用原始中心:
CGPoint center = button.center;
button.frame = CGRectMake(button.frame.origin.x, button.frame.origin.y, 0, 0);
button.center = center;
答案 2 :(得分:0)
[button setCenter:CGPointMake(button.frame.origin.x, button.frame.origin.y)];
评论这个并尝试。如果它不起作用,则在动画之前获取中心点并将该点专门设置为rmaddy。
答案 3 :(得分:0)
你也可以尝试:
[button setFrame:CGRectMake(button.frame.origin.x+button.frame.size.width/2, button.frame.origin.y+button.frame.size.height/2, 0, 0)];
在您的代码中,它将是:
[UIView animateWithDuration:0.5
delay:0.0
options: UIViewAnimationCurveEaseInOut
animations:^{
[button setFrame:CGRectMake(button.frame.origin.x+button.frame.size.width/2, button.frame.origin.y+button.frame.size.height/2, 0, 0)];
}
completion:^(BOOL finished){
...
答案 4 :(得分:0)
我已经对此进行了测试,它“缩小”了整个动画中保持中心的按钮。
[UIView animateWithDuration:0.5 delay:0.0 options:0
animations:^{
button.transform = CGAffineTransformMakeScale(0, 0);
} completion:^(BOOL finished) {
// ... remove button from super view?
}];