2017-10-05 17 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プロパティが何をするかの私の解釈としなければならないことがあります。

ドキュメントの状態:

真の原因のサブビューにこの値を設定するには、境界受信機の にクリップします。

私は当初、受信者がUIImageViewを添付したビューだと思っていましたが、そうではないと思われていました。 提案がありますか?ドキュメント状態として

答えて

2

がレシーバの境界 にクリップされる真の原因のサブビューにこの値を設定します。

現在、このプロパティはcellImageに設定されています。この場合、受信者であるため、サブビューが切り捨てられます。しかし、この画像ビューをクリップしたいので、サブビューをクリップしたいので、cellContainerViewにこのプロパティを設定する必要があると思います。

関連する問題