【问题标题】:UIView subview clips during UIView transition animationUIView 过渡动画期间的 UIView 子视图剪辑
【发布时间】:2015-06-15 06:35:30
【问题描述】:

我创建了一个 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 剪辑期间。我尝试将 superview 层的 'masksToBounds' 属性设置为 'NO' 但这并没有解决问题。

我目前唯一的解决方法是让超级视图比子视图大得多,并且不允许子视图的框架存在于超级视图的边界之外,但这在我的应用程序中不实用。

【问题讨论】:

标签: ios clipping


【解决方案1】:

我已经解决了。恐怕这是我自己造成的问题。我在transitionWithView:duration:options:animations:-方法中引用了错误的视图。我应该引用动画的视图,即子视图。代码现在可以像这样在没有剪辑的情况下工作:

[UIView transitionWithView:self.bodyView
                  duration:0.7
                   options:UIViewAnimationOptionTransitionFlipFromLeft | UIViewAnimationOptionAllowAnimatedContent
                animations:^{
                        self.bodyView.transform = CGAffineTransformMakeScale(-1.0, 1.0);
                    }
                    completion:^(BOOL fin){
                    }];

【讨论】:

    【解决方案2】:

    试试这个:

    imgView.contentMode = UIViewContentModeScaleAspectFit;
    

    【讨论】:

    • 我的意思是你的 imageview 的父级不是 imgview
    • 不。好像没什么区别。
    猜你喜欢
    • 2012-01-31
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2021-12-23
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多