2016-04-01 12 views
0

私は、約10種類の異なるUITableViewCellのプロトタイプを作成する必要があるシナリオを持っています。どのようにしてこれらのセルにすべて共通のUI要素(黒でマークされた領域)がいくつかあります。そして、これらのプロトタイプすべてで異なる領域(黄色でマークされています)があります。共通要素を持つUITableViewCell

UITableViewCellのcontentViewで行われるような一般的なUI要素を抽象化する方法はありますか?

私はこれらの要素と空のUIViewを持つTableViewCellを作成してカスタマイズを保持しようとしましたが、UIView(別のxibで作成)をプログラムで読み込む予定でした。

問題は、制約を緩めることなくUIViewをUITableViewCellに読み込むことができないことです。

カスタムビューを別のビューにロードするにはどうすればいいですか?

またはIBのようなカスタムUITableViewCellを作成する方法はありますか?

+0

http://imgur.com/ebHuusC - 私のtableviewcellレイアウトの画像 – gangadhar

答えて

0
  1. あなたの再利用可能な一部となるサブビューを挿入し、XIBファイルを作成し、あなたのサブクラスとして
  2. ドラッグ店舗をファイルの所有者を設定し、セルで
  3. いつものようにあなたの視野を設計LoadableFromXibViewサブクラス
  4. を作成します。あなたが作成した新しいLoadableFromXibViewサブクラスとしてその名前を設定します。ここ

出典:https://gist.github.com/DenHeadless/c3d682e7f499113109d6

class LoadableFromXibView: UIView { 

    var view = UIView() 

    override init(frame: CGRect) { 
     super.init(frame: frame) 
     xibSetup() 
    } 

    required init?(coder aDecoder: NSCoder) { 
     super.init(coder: aDecoder) 
     xibSetup() 
    } 

    func xibSetup() { 
     view = loadViewFromXib() 
     view.frame = bounds 
     view.autoresizingMask = [.FlexibleWidth, .FlexibleHeight] 
     backgroundColor = .clearColor() 
     addSubview(view) 
    } 

    private func loadViewFromXib() -> UIView { 
     let bundle = NSBundle(forClass: self.dynamicType) 
     let nib = UINib(nibName: String(self.dynamicType), bundle: bundle) 
     let view = nib.instantiateWithOwner(self, options: nil).first as! UIView 
     return view 
    } 
    } 
関連する問題