Ios 如何设置按钮的动画以缩小并移动到其他位置?
这件事让我目瞪口呆 我在屏幕上有一个大按钮,当我按下它时,我希望它缩小并移动到屏幕的左下角(完成后,隐藏自己并在结束位置取消隐藏一个具有不同功能的相同按钮) 我有一个标签,可以在与Ios 如何设置按钮的动画以缩小并移动到其他位置?,ios,objective-c,uiviewanimation,uiviewanimationtransition,Ios,Objective C,Uiviewanimation,Uiviewanimationtransition,这件事让我目瞪口呆 我在屏幕上有一个大按钮,当我按下它时,我希望它缩小并移动到屏幕的左下角(完成后,隐藏自己并在结束位置取消隐藏一个具有不同功能的相同按钮) 我有一个标签,可以在与UIView animateWithDuration:animations:completion:接触时展开和收缩,并且使用相同的方法效果很好,所以我不明白为什么这不起作用: [UIView animateWithDuration:2.0 animations:^{
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
手动填充值。同样的事情发生了
我的问题是:
- 为什么要从下角的“我的按钮”开始,并设置动画到其原始位置
- 如何使大按钮(位置居中,大尺寸)显示为小按钮(位置左下角,小尺寸)
[UIView animateWithDuration:2.0
options: UIViewAnimationCurveLinear
animations:^{
self.bigButton.center = CGMakePoint(XCOORD, YCOORD);
self.bigButton.frame = CGRectMake(STARTX,STARTY,WIDTH,HEIGHT)
}
completion:^(BOOL finished){
self.bigButton.hidden = YES;
self.littleButton.hidden = NO;
}];
它将移动到点XCOORD、YCOORD,按钮的大小将从点(STARTX、STARTY)的左下角开始,长度宽,高度高。再说一遍,我不能检查这些,因为我不在电脑前,但我认为这是你试图去的方向。我回家后会再看看这个
我还认为您可以使用CGRectMake移动按钮并更改大小。使用动画的中心和边界,而不是帧。 从用于设置帧属性动画的文档中:
对此属性的更改可以设置动画。但是,如果transform属性包含非标识转换,则frame属性的值未定义,不应修改。在这种情况下,您可以使用center属性重新定位视图,而使用bounds属性调整大小视图层次结构中的大按钮和小按钮是否处于同一级别(即,它们是否都具有相同的父视图)?@bobnoble是的,相同的父视图。UIButton是否不应设置动画或其他内容?我将动画代码插入到一个测试项目中,并按照您的描述工作,所以问题不在于你提供的代码。正如你在第二段中所描述的(即,期望的行为),也就是说。做与我的代码相同的事情。奇怪的是,当我切换动画块中声明的顺序时,按钮会跳到任意位置,然后设置动画到正确的位置。大小仍然不变。可以找到框架属性的完整解释。