2017-06-01 22 views
0

ラウンドコレクションビューセルを作成しようとしています。UICollectionView太い境界線を持つセル

セルには、上から、先頭、末尾、下から0の赤いUIViewがあります。そのセルの中に私は白い別のビューを持っています、それは上から4、先頭、後ろ、下です。そのビュー内にはUILabelとUIImageViewがあります。

目標は1列に2つのセルがあり、白い円とテキストと画像の周りに赤いリングがあります。私は私のcellForItemAtの内部この

extension UIView { 
    func createRoundView() { 
    layer.cornerRadius = frame.size.width/2 
    clipsToBounds = true 
    } 
} 

などのUIViewのための拡張子を持つラウンドUIViewsを作成するには

私は目標が左側にあるが、何が起こっている

cell.whiteBackgroundView.createRoundView() 
cell.colorStatusView.createRoundView() 

を言います右側にあります。

enter image description here

は、ここに私のストーリーボード

enter image description here

制約が赤、青、すべて、何もないです。

は、そして、私はこのデリゲートメソッド

func collectionView(_ collectionView: UICollectionView, layout collectionViewLayout: UICollectionViewLayout, sizeForItemAt indexPath: IndexPath) -> CGSize { 
    let padding: CGFloat = 25 
    let collectionCellSize = collectionView.frame.size.width - padding 
    return CGSize(width: collectionCellSize/2, height: collectionCellSize/2) 
} 

私が間違っているかもしれないものの任意のアイデアを使用して、列ごとに2セルを取得しますか?

最後に、ビュー内にビューがあるかどうかは関係ありません。私は他のデータに基づいてリングや境界線の色を変更します。その境界線の色を簡単に変更できるようにする必要があります。

答えて

2

このコードは十分ではありません、そこに何が起こっているか教えて...すべて

backgroundColors to .clear 

を設定しようと、私は考え出し@blinkmeoffの答えを使用して、あなたのビューに

customView.layer.cornerRadius = half of your width 
customView.layer.borderWidth = 5 
customView.layer.borderColor = UIColor.red.cgColor 
0

をこれらのプロパティを設定しますそれはほとんど(しかし、今後の質問に従います)

私は以下を追加しました:

self.backgroundViewContainer.layoutIfNeeded()  
self.backgroundViewContainer.layer.cornerRadius = min(backgroundViewContainer.frame.size.width, backgroundViewContainer.frame.size.height)/2 
self.backgroundViewContainer.clipsToBounds = true 

は、私は(BA ...

ので、私は分を追加しただけで/ 2を実行して、奇妙な形状を取得保管し、それは私の完璧な円

を得ました
関連する問題