动画块复位到原来的位置更新文本
我目前正在测试我的应用程式iOS 8的发布我发现后,我进行动画块,动画重置如果我更新任何标签的文本之后。我用下面的一个方法运行了一个简单的例子。运行此示例的结果如下:动画块复位到原来的位置更新文本
- 单击
myButton
第一次 - 动画运行但在标签文本更改时重置。 - 点击
myButton
第二次 - 动画运行,但不会恢复到原来的位置。
看起来这是因为标签文本不会更改。如果我完全删除了更新文本的行,这也会阻止动画在最后重置。
我想解决这个问题,这样的方式运行时,标签的文本可以无需重新设置动画更新。
- (IBAction)move:(id)sender {
[UIView animateWithDuration:0.4 delay:0.0
options:UIViewAnimationOptionBeginFromCurrentState
animations:^{
self.myButton.center = CGPointMake(200, 300);
}completion:^(BOOL finished){
if(finished){
[email protected]"moved";
}
}];
}
此问题可能是由在UIView上设置了自动布局引起的。严格来说,如果你使用自动布局,那么,那么你不应该动画物体的绝对位置 - 你应该动画他们的约束,而不是。
更改标签文本,一旦你的动画正在进行触发布局刷新,而iOS洗牌周围的一切都符合原来的视图约束。 (我怀疑这是iOS7的行为改变)。
快速修复:取消选中视图上的自动布局,这应该按预期工作。
这是工作。即使我不使用设置任何约束 – 2016-07-25 02:38:08
试试这个。也将所需的动画放入完成块中。
- (IBAction)move:(id)sender {
[UIView animateWithDuration:0.4 delay:0.0
options:UIViewAnimationOptionBeginFromCurrentState
animations:^{
self.myButton.center = CGPointMake(200, 300);
}completion:^(BOOL finished){
if(finished){
[email protected]"moved";
self.myButton.center = CGPointMake(200, 300);
}
}];
}
如果我这样做,我会看到视图闪烁。 :/不满意。 – fatuhoku 2015-09-22 11:57:02
同样的问题在这里,任何人都有这个解决方案? – 2014-09-22 06:37:13