2017-10-05 85 views
0

我有UICollectionViewCell中的UIImageView,我正在移動相對於滾動視圖內容偏移量。這是爲了在用戶水平滾動時提供視差效果,但是當滾動視圖開始滾動時似乎存在裁剪問題。UIImageView沒有剪裁到UIView邊界,而動畫

而不是剪裁,邊緣會持續存在,並顯示在容器邊界之外。

所附的截屏展示最好的行爲...... 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的視圖,但是看起來不是這樣。 有什麼建議嗎?

回答

2

由於文檔狀態:

將該值設置爲true會導致子視圖被裁剪到指定邊界接收機的 。

當前您正在設置此屬性cellImage,所以在這種情況下,它是接收器,所以其子視圖將被剪切。但是你想剪輯這個imageview,所以我認爲你需要在cellContainerView上設置這個屬性,因爲你希望它的子視圖被剪切。