我在UICollectionViewCell中有一个UIImageView,我正在移动滚动视图内容偏移量。当用户水平滚动时,这就是提供视差效果,但滚动视图开始滚动时似乎存在剪裁问题。
不是削波,而是边缘持续存在并显示在容器边界之外。
附带的截图最能展示行为...... 在屏幕截图中,滚动视图已开始向右滚动,并且伴随的视图已开始翻译,但是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的视图,但是看起来并非如此。 有什么建议?
答案 0 :(得分:3)
正如文件所述:
将此值设置为true会导致子视图被剪切到边界 接收者。
目前您正在cellImage
上设置此属性,因此在这种情况下它是接收器,因此其子视图将被剪裁。但是你想剪辑这个imageview,所以我认为你需要在cellContainerView
上设置这个属性,因为你想要剪切它的子视图。