首页 > 代码库 > 如何解决IOS 动画中 Autolayout 与View Transforms的冲突
如何解决IOS 动画中 Autolayout 与View Transforms的冲突
IOS 的动画放大与缩小,并非按照找它的中心点放大和缩小,而是左上角 。我分析了下原来是Autolayout 与View Transforms的冲突造成的。
- (void) addSubviewWithZoomInAnimation:(UIView*)view duration:(float)secs option:(UIViewAnimationOptions)option { // first reduce the view to 1/100th of its original dimension CGAffineTransform trans = CGAffineTransformScale(view.transform, 0.01, 0.01); view.transform = trans; // do it instantly, no animation [self addSubview:view]; // now return the view to normal dimension, animating this tranformation [UIView animateWithDuration:secs delay:0.0 options:option animations:^{ view.transform = CGAffineTransformScale(view.transform, 100.0, 100.0); } completion:nil]; } - (void) removeWithZoomOutAnimation:(float)secs option:(UIViewAnimationOptions)option { [UIView animateWithDuration:secs delay:0.0 options:option animations:^{ self.transform = CGAffineTransformScale(self.transform, 0.01, 0.01); } completion:^(BOOL finished) { [self removeFromSuperview]; }]; }
解决方案:
Disable auto layout:
self.imageView.translatesAutoresizingMaskIntoConstraints = YES;
【1】
http://stackoverflow.com/questions/12943107/how-do-i-adjust-the-anchor-point-of-a-calayer-when-auto-layout-is-being-used/14105757#14105757
声明:以上内容来自用户投稿及互联网公开渠道收集整理发布,本网站不拥有所有权,未作人工编辑处理,也不承担相关法律责任,若内容有误或涉及侵权可进行投诉: 投诉/举报 工作人员会在5个工作日内联系你,一经查实,本站将立刻删除涉嫌侵权内容。