【发布时间】:2013-06-28 20:56:23
【问题描述】:
我被这个吓傻了。
我在屏幕上有一个大按钮,当我按下它时,我希望它缩小并移动到屏幕的左下角(完成后,隐藏自身并在结束位置取消隐藏具有不同功能的相同按钮)。
我有一个标签可以在与UIView animateWithDuration:animations:completion: 联系时扩展和收缩,并且使用相同的方法可以正常工作,所以我很困惑为什么这不起作用:
[UIView animateWithDuration:2.0
animations:^{
self.bigButton.frame = self.littleButton.frame;
}
completion:^(BOOL finished){
self.bigButton.hidden = YES;
self.littleButton.hidden = NO;
}];
执行此操作时,大按钮出现在屏幕底部(部分离开屏幕)并动画到其原始位置,然后执行完成块。
考虑到将一个帧分配给另一个帧会导致问题,我在一个独立的应用程序中重新创建了它,并使用了CGRectMake 并手动填写了值。同样的事情发生了。
我的问题:
- 为什么这会在底角启动我的按钮并动画到其原始位置?
- 如何使 bigButton(位置居中,大尺寸)显示为 littleButton(位置左下角,小尺寸)的动画?
【问题讨论】:
-
大按钮和小按钮在视图层次结构中是否处于同一级别(即,两者是否具有相同的父视图)?
-
@bobnoble 是的,相同的父视图。
-
UIButton 不应该是动画的吗?
-
我将您的动画代码插入了一个测试项目,它按照您的描述工作,所以问题不在于您提供的代码。
-
正如您在第 2 段中描述的那样(即期望的行为),即。
标签: ios objective-c uiviewanimation uiviewanimationtransition