0

私のUIImageViewは、コレクションビュー(collectionView.reloadData())のスクロールまたはリロードを丸めた形では表示されません。なぜUIImageViewはスクロールするまで丸く表示されませんか?

enter image description here

を四捨五入して

enter image description here

  • を丸めなければ:

    これは、それがどのように見えるかです

    セルには複数のイメージビューがあり、すべてがfacesContainer UIView制約になるように制約されています。私はこのコードを実装しようとした

    collectionView(_ collectionView: UICollectionView, cellForItemAt indexPath: IndexPath)内にある:

    cell.facesContainer.layer.cornerRadius = (cell.facesContainer.layer.frame.width/2) 
    cell.facesGroupImageView.layer.cornerRadius = (cell.facesGroupImageView.layer.frame.width/2) 
    cell.facesGroupImageView.layer.masksToBounds = true 
    cell.facesGroupImageView.layer.borderColor = UIColor.black.cgColor 
    cell.facesGroupImageView.layer.borderWidth = 0.5 
    

    また、私はawakeFromNib()方法で、カスタムセルクラスで上記のコードスニペットを追加しようとしましたが、それは動作しません。

    なぜ機能しないのですか?どのようにそれを修正するには?

+0

uが –

+0

制約がawakeFromNib' 'に存在しないwilldisplaycell方法でこれを試しました。 – the4kman

+0

この後の説明と解決策を見てください:https://stackoverflow.com/questions/32362934/how-to-keep-a-round-imageview-round-using-auto-layout – DonMag

答えて

0

は、細胞を返す前に、これを呼び出してみてください。

cell.layoutIfNeeded() 
-1

これを試してみてください:再び
コールrealoadData()、0.5秒の遅延の後に。これは確実に機能します。

tableviewセルクラスのレイアウトサブビューをオーバーライドします。

override func viewWillLayoutSubviews() { 
    super.viewWillLayoutSubviews() 
    self.facesContainer.layer.cornerRadius = (self.facesContainer.layer.frame.width/2) 
    self.facesGroupImageView.layer.cornerRadius = (self.facesGroupImageView.layer.frame.width/2) 
} 
1

viewWillLayoutSubviewsの半径を設定すると問題が解決します。

override func viewWillLayoutSubviews() { super.viewWillLayoutSubviews() profileImageView.layer.cornerRadius = profileImageView.frame.height/2.0 }

関連する問題