Cra*_*Bae 18 animation reset ios ios8
我正在测试我的应用程序以发布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){
self.myLabel.text=@"moved";
}
}];
}
Run Code Online (Sandbox Code Playgroud)
小智 18
在UIView上设置自动布局可能会导致此问题.严格来说,如果您正在使用自动布局,那么您不应该为对象的绝对位置设置动画 - 您应该为其约束设置动画.
动画正在进行时更改标签文本会触发布局刷新,iOS会随机播放所有内容以符合原始视图约束.(我怀疑这是iOS7的行为改变).
快速修复:取消选中视图上的自动布局,这应该按预期工作.
| 归档时间: |
|
| 查看次数: |
5390 次 |
| 最近记录: |