2017-02-06 14 views
0

私はUIViewを自分のセルに持っています。 UICollectionviewが最初に読み込まれると、陰影は私が意図したように見えません。しかし、私がスクロールすると、影は正常になります。間違ったレンダリングswift - UIViewの影が正しくレンダリングされない

 self.backView.layer.cornerRadius = 3 
     self.backView.clipsToBounds = true 
     self.backView.layer.shadowPath = UIBezierPath(roundedRect: self.backView.bounds, cornerRadius: self.backView.layer.cornerRadius).CGPath 
     self.backView.layer.shadowColor = UIColor.blackColor().CGColor 
     self.backView.layer.shadowOpacity = 0.3 
     self.backView.layer.shadowOffset = CGSizeMake(0, 1) 
     self.backView.layer.shadowRadius = 1 
     self.backView.layer.masksToBounds = false 

影:正しくレンダリング

wrong

影:

enter image description here

編集-1:私は、根本的な原因ではなく、解決策を見つけました。

func collectionView(collectionView: UICollectionView, layout collectionViewLayout: UICollectionViewLayout, sizeForItemAtIndexPath indexPath: NSIndexPath) -> CGSize { 
     return CGSizeMake(collectionView.frame.width/3, collectionView.frame.height) 
    } 

私はこのコードを削除するときに、影が正しく表示されます:私はこのようなセルの高さ&幅を変更するため、実行時間のストーリーボードとセルフレームのセルフレームは異なっています。しかし、私はコードで幅を&に設定できません。

+0

を試すことができますか? – nynohu

+0

collectionViewCell内 –

+0

あなたのcellForItemAtIndexPathにいくつかの追加コード –

答えて

1

あなたがそのコードを実行しなかったこの

self.backView.layer.shadowColor = UIColor.black.cgColor 
self.backView.layer.shadowOpacity = 1 
self.backView.layer.shadowOffset = CGSize.zero 
self.backView.layer.shadowRadius = 2 
関連する問題