我有一个UIView
子类,我可以成功使用UIView
动画。
此UIView
也有子视图,我也希望能够UIView
制作动画。
然而,似乎每当我创建动画并将其应用于父视图时它都可以正常工作,但如果我将动画应用于子视图,它会向后动画。
例如,如果我将UIView
父级(self)缩放2倍(将宽度和高度加倍):
[UIView beginAnimations:nil context:nil];
[UIView setAnimationDelegate: self];
[UIView setAnimationDuration:2];
[UIView setAnimationDelay:2];
CGAffineTransform scaleTransform = CGAffineTransformScale( self.transform, 2, 2 );
self.transform = scaleTransform;
[UIView commitAnimations];
然后这很好。
但如果我对孩子做同样的事情:
UIView *myObj = [[self subviews] objectAtIndex:0];
[UIView beginAnimations:nil context:nil];
[UIView setAnimationDelegate: self];
[UIView setAnimationDuration:2];
[UIView setAnimationDelay:2];
CGAffineTransform scaleTransform = CGAffineTransformScale( myObj.transform, 2, 2 );
myObj.transform = scaleTransform;
[UIView commitAnimations];
它不起作用。视觉上发生的是儿童视图立即缩小,然后延迟缩小到原始大小。
如果我记录转换参数,它对父母和孩子看起来都一样,我尝试设置CGAffineTransformIdentity
。
任何想法可能是什么问题?
答案 0 :(得分:0)
我覆盖了layoutSubviews,在那里我根据设备方向分配了视图的大小/位置,这是冲突的。h!