2017-02-14 13 views
0

私は、swiftファイルとXibで作成されたUIViewControllerのカスタムサブクラスを持っています。Swift UITableViewCell内のUIViewControllerまたはUIViewをプログラムで追加する

複雑なので複数の場所でこのサブクラスを再利用したいので、私はUITableViewCellまたはUICollectionViewCellの他のサブクラスを作成して同じ動作を実装したくありません。

私のViewControllerはので、私はシングルサイズを持っていないにも拡張可能であるが、成分(iが崩壊したときに0にまで低減されているいくつかの制約を持っているか、拡張したとき、それまで通常のサイズです)

のITの可視性によって決定されます

セルをサブクラス化するだけで、このUIViewController(またはそのビュー)をセル(テーブルまたはコレクション)に追加する最も良い方法は何ですか?

単にViewControllerのビューを(セルの)contentViewに追加し、そのフレームを設定しても機能しない場合、ビューは互いに1つずつ表示され、原点も上に表示されます。

更新:

例:

MyViewController:あなたは私が考えるUIViewUIViewControllerを混乱している

class MyViewController: UIViewController 
{ 
// has the view property 
} 

MyCell

class MyCell: UITableViewCell 
{ 

var myViewController: MyViewController! 
    override func awakeFromNib() 
    { 
     myViewController = MyViewController() 
     self.contentView.addSubview(myViewController.view) 
    //what to do next to fit the myViewController inside contentView, 
    //myViewController.view is bigger , 
    //and make the cell to follow the myViewController.view size 

    } 

} 

答えて

0

。私はちょうどあなたがストーリーボードを使用したい場合は、XIBにそれを添付することができ、カスタムUIView

import UIKit 

class CustomView: UIView { 

    override func draw(_ rect: CGRect) { 
     // Drawing code 

     // Do complicated stuff in this view... 
    } 

} 

になるだろうが、あなたは動的コードですべてをやっているように聞こえます。その後、必要に応じてこのビューのインスタンスを作成します。たとえば:

let cv = CustomView() 
    cv.frame = CGRect(x: 100, y: 100, width: 200, height: 200) 
    self.view.addSubview(cv) 
+0

こんにちはアントワーヌ、あなたが質問、ビュー(またはのUIViewController)(私は他のコンポーネントとビューを設計し、私はそれに直接描画しない)XIBとともに作成さを誤解します。カスタムセルにこのビューを追加して、そのセルを自分のビューに合わせたいと思います。問題は、すべてのサブビューが範囲外であり、互いにオーバーレイしていることです。 – 4bottiglie

関連する問題