[英]UIView subview clips during UIView transition animation
我创建了一个 UIView 子类,其中包含一个 UIImageView 子视图。 UIIMageView 子视图通常可能位于其超视图(我的 UIView 子类)的边界之外。 这不是问题,因为我的子视图没有“clipsToBounds”,所以不会发生剪辑。 直到我的子视图执行过渡动画。
[UIView transitionWithView:self
duration:0.7
options:UIViewAnimationOptionTransitionFlipFromLeft | UIViewAnimationOptionAllowAnimatedContent
animations:^{
self.bodyView.transform = CGAffineTransformMakeScale(-1.0, 1.0);
}
completion:^(BOOL fin){
}];
在这个例子中,'bodyView' 是我的 UIView 子类的 UIImageView 子视图。 在过渡时 bodyView 剪辑。 我曾尝试将超级视图层的“masksToBounds”属性设置为“NO”,但这并没有解决问题。
我目前唯一的解决方法是让父视图比子视图大得多,并且不允许子视图的框架存在于父视图的边界之外,但这在我的应用程序中不实用。
我已经解决了。 恐怕这是我自己造成的问题。 我在transitionWithView:duration:options:animations:
-method 中引用了错误的视图。 我应该引用动画的视图,即子视图。 代码现在无需剪辑即可工作,如下所示:
[UIView transitionWithView:self.bodyView
duration:0.7
options:UIViewAnimationOptionTransitionFlipFromLeft | UIViewAnimationOptionAllowAnimatedContent
animations:^{
self.bodyView.transform = CGAffineTransformMakeScale(-1.0, 1.0);
}
completion:^(BOOL fin){
}];
尝试这个:
imgView.contentMode = UIViewContentModeScaleAspectFit;
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.