2017-10-27 17 views
1

カードビューを使用してテーブルセルを構築していて、動作していますが、外観を変更したいと思っています。CardViewにスペースを追加するTableViewCell

それは次のようになります。

Current

そして、私はそれが表のセルと、各テーブルセル間のエッジと空間の間のスペースで次のようになりたい:

What I want

カードビューテーブルのセルを作成するためのコードは次のとおりです。

class ModelCell: UITableViewCell { 

// Outlets 
@IBOutlet weak var modelTitleLabel: UILabel! 
@IBOutlet weak var modelDescriptionLabel: UILabel! 


override func awakeFromNib() { 
    super.awakeFromNib() 
    // Initialization code 
} 

override func setSelected(_ selected: Bool, animated: Bool) { 
    super.setSelected(selected, animated: animated) 

    // Configure the view for the selected state 
} 

@IBInspectable var cornerRadius: CGFloat = 10 

@IBInspectable var shadowOffsetWidth: Int = 0 
@IBInspectable var shadowOffsetHeight: Int = 3 
@IBInspectable var shadowColor: UIColor? = UIColor.white 
@IBInspectable var shadowOpacity: Float = 0.5 

override func layoutSubviews() { 
    layer.cornerRadius = cornerRadius 
    let shadowPath = UIBezierPath(roundedRect: bounds, cornerRadius: cornerRadius) 

    layer.masksToBounds = false 
    layer.shadowColor = shadowColor?.cgColor 
    layer.shadowOffset = CGSize(width: shadowOffsetWidth, height: shadowOffsetHeight); 
    layer.shadowOpacity = shadowOpacity 
    layer.shadowPath = shadowPath.cgPath 
    layer.borderWidth = 1.0 
    layer.borderColor = UIColor(red:0.00, green:0.87, blue:0.39, alpha:1.0).cgColor 



    } 

} 

ご協力いただきありがとうございます。

+0

垂直コレクションビューにする必要があります。コレクションビューで簡単に管理できます。 –

+0

@TusharSharma私はこのことをやっていました:https://stackoverflow.com/questions/28141021/do-card-view-with-swiftこれは私が欲しいものの写真を持っていますが、私がそれを実装したとき、そのスタックオーバーフローの問題の画像ではどうなるのでしょうか? –

+0

ここで私の答えを確認してください - https://stackoverflow.com/questions/45906041/how-can-i-create-space-between-table-view-cells-using-constraints/45908474#45908474。左右のスペースも簡単に処理できます。 –

答えて

3

テーブルビューで行の区切りを簡単に追加できます。

2つのラベルを保持しているあなたのセルにUIViewを追加します。ここでは

は一つの方法です。次に、そのビューに側面と上部と下部からのインセットを与えます。上/下のインセットは、行間の間隔を与えるものです。

その後、あなたの罫線を適用し、その「内側」ビューに影響を影 - あなたはそれを見ることができるように、ライトグレーでここに示す:

enter image description here

結果(左の画像は、灰色の背景にある、右の画像)白の背景にある:

はにIBOutletへの "インナービュー"、そしてあなたのコードの変更を割り当てます

override func layoutSubviews() { 

    // just use the layer's shadow... adding the Bezier   
    //let shadowPath = UIBezierPath(roundedRect: innerView.bounds, cornerRadius: cornerRadius) 
    //innerView.layer.shadowPath = shadowPath.cgPath 

    innerView.layer.cornerRadius = cornerRadius 
    innerView.layer.masksToBounds = false 
    innerView.layer.shadowColor = shadowColor?.cgColor 
    innerView.layer.shadowOffset = CGSize(width: shadowOffsetWidth, height: shadowOffsetHeight); 
    innerView.layer.shadowOpacity = shadowOpacity 
    innerView.layer.borderWidth = 1.0 
    innerView.layer.borderColor = UIColor(red:0.00, green:0.87, blue:0.39, alpha:1.0).cgColor 

} 
+1

私はあなたがスマートな仕事をしたのを見る+1。 –

+0

ありがとう@DonMag、もう一度。それが私の解決のためにやったことです。 –

+0

@BenNalleでも役に立ちましたが、いつカスタマイズするかは常にコレクションビューを優先します。 –

関連する問題