2016-08-05 14 views
0

この質問は、CellViewUITableViewに表示するw.r.t xibと古いスタイルです。私はautolayouts私の意見があります。UITableViewCellの動的高さのサブビュー

UITableViewCellに再利用したいタイプUIViewDynamicSubView(動的高さ)があります。このために、私は2つのことを試してみました、DynamicSubview

  • [cell.contentView addSubview:myDynamicView]として追加

    • はすべてLeft-Top-Right-Bottom上の制約0-0-0-0cell.xibさんcontentView内部UIViewを追加しました。また、実行時に&が変化する高さはNSLayoutConstraintです。そしてその見解のidentity inspectorDynamicSubviewに設定しました。 MyCell.mクラスにおいて

    、私はDynamicSubViewの動的高さを算出しています、layoutSubView方法でawakeFromNib &にDynamicSubViewクラスのオブジェクトを作成追加しました。

    heightForRowAtIndexPathに高さ関連のコードを追加しようとしましたが、テーブルが読み込まれたときに初めて無限ループに入ります。

    問題は、セルがオーバーラップしていることです。高さの値の配列を作成し、再度読み込む必要があります。適切な高さでセルを再ロードするためのよりよい解決策。 MyCellクラスで

    コード:

    - (void)awakeFromNib 
    { 
        [super awakeFromNib]; 
        self.myDynamicView = (DynamicSubView *)self.myContainerView; 
        [self.myDynamicView setUpView:YES]; 
    } 
    
    - (void)layoutSubviews 
    { 
        [super layoutSubviews]; 
    
        [self.myDynamicView doSomething]; 
        self.c_height.constant = [self.myDynamicView getHeightOfDynamicSubview]; 
    
        //CGRect cellFrame = self.contentView.frame; 
        //self.contentView.frame = CGRectMake(cellFrame.origin.x, cellFrame.origin.y, cellFrame.size.width, self.c_height.constant); 
        self.cellHeight = self.c_height.constant; 
    } 
    
    +0

    高さに依存しますか?いくつかの文字列いくつかの画像何ですか? –

    答えて

    0

    よりもむしろLayoutSubiewを使用して()tableViewCell内部、あなたはあなたのビューコントローラ

    SWIFT

    自己の次のメソッドをすることができます。 tableView.estimatedRowHeight = 100(tableViewCellの最小の高さを100としましょう)

    FUNC用のtableView(のtableView:のUITableView、heightForRowAtIndexPath indexPath:NSIndexPath) - > CGFloat {戻りUITableViewAutomaticDimension }

    関連する問題