我试图做一个确切的“翻译”这个UIView的基于块的动画代码:
[UIView animateWithDuration:0.5
delay:0.0
options:UIViewAnimationOptionCurveEaseInOut
animations:^{
someView.frame = CGRect(0, 100, 200, 200);
}
completion:nil];
使用CABasicAnimation来代替。
我完全意识到,框架属性是实际的下层的位置 , 边界和anchorPoint的组合,因为它是这里描述: http://developer.apple.com/library/mac/#qa/qa1620/_index html的
......我已经作出这样的一个解决方案,使用两个CABasicAnimations一个设定的位置 ,一个用于边界和它的作品为一个视图。
然而,问题是,我有我的观点里子视图。 someView有型的UIScrollView的子视图中,我将仍然类型的UIImageView的另一个子视图。 UIScrollView的子视图具有autoresizingMask设置为UIViewAutoresizingFlexibleWidth | UIViewAutoresizingFlexibleHeight。 这一切都完美地工作,如果我使用的UIView基于块的版本,但是当我尝试使用CABasicAnimations子视图开始出现行为异常(即得到调整大小不正确的宽度)。 如此看来使用CABasicAnimations时autoresizingMask无法正常工作。 我还注意到,子视图没有收到用于SETFRAME一个电话:虽然父视图的框架属性不更改后变为层位置和界限制成。
这就是为什么我想知道什么是正确的代码CABasicAnimation,当一个人使用的UIView的animateWithDuration方法正在发生的事情进行复制。