在动画制作时,UIImageView不会剪切到UIView边界

时间:2017-10-05 01:27:41

标签: ios swift uiimageview

我在UICollectionViewCell中有一个UIImageView,我正在移动滚动视图内容偏移量。当用户水平滚动时,这就是提供视差效果,但滚动视图开始滚动时似乎存在剪裁问题。

不是削波,而是边缘持续存在并显示在容器边界之外。

附带的截图最能展示行为...... enter image description here 在屏幕截图中,滚动视图已开始向右滚动,并且伴随的视图已开始翻译,但是UIImageView没有剪切其边框以匹配接收器。在这种情况下,应该是透明的UIView。

这是UIImageView

let cellImage: UIImageView = {
    let c = UIImageView()
    c.clipsToBounds = true
    c.layer.masksToBounds = true
    c.contentMode = .scaleAspectFill
    c.image = UIImage(named: "tree")
    c.translatesAutoresizingMaskIntoConstraints = false
    c.layer.cornerRadius = 15
    return c
}() 

然后将UIImageView添加到containerView中并设置为填充它的边界。

cellContainerView.addSubview(cellImage)
//add constraints

我的想法是,如果有任何问题可能与我对.clipsToBounds属性的解释有关。

文档说明:

  

将此值设置为true会导致子视图被剪切到边界   接收者。

我最初认为接收器是你附加UIImageView的视图,但是看起来并非如此。 有什么建议?

1 个答案:

答案 0 :(得分:3)

正如文件所述:

  

将此值设置为true会导致子视图被剪切到边界   接收者。

目前您正在cellImage上设置此属性,因此在这种情况下它是接收器,因此其子视图将被剪裁。但是你想剪辑这个imageview,所以我认为你需要在cellContainerView上设置这个属性,因为你想要剪切它的子视图。