2017-07-16 7 views
0

私はUITableViewを持っています。私のテーブルビューでは、私は動的に別のビューを自分のセルに追加し、セルの高さを広げたいと思います。私はいくつかの例を見てきましたが、それらはUILabelsです。 UILabelsは、テキストの高さに応じて高さを変更できます。しかし、手動で別のビューを追加してそれらのセルを拡張するにはどうすればよいですか?手動でセルの高さは、その簡単に計算を使用している場合動的にUITableViewCellの高さを拡張するには?

くれ おかげ

答えて

0

を助けてください、あなたは別のビューを追加した後、あなたは高さを計算し、reloadDataまたはreloadRowsAtIndexPathsを呼び出し、テーブルビューでの高さを返します。 heightForRowAtIndexPath関数です。 セルの高さを自動計算する場合は、計算方法をシステムに知らせる必要があります。自動レイアウトをはっきりと完全に設定する必要があります。別のビューの左、右、上、下の制約を追加してください。高さを計算します。したがって、細胞は拡大されます。

+0

ありがとう:

@IBOutlet weak var customViewHeightConstraint: NSLayoutConstraint! 

制約一定の値がcellForRowAtに変更することができますデフォルトのサイズを設定するか、動的に設定する必要がありますか? – user1960169

+0

このように設定することができます:self.tableView.estimatedRowHeight = 100; //すべてのセルのような値 self.tableView.rowHeight = UITableViewAutomaticDimension; – zacks

0

あなたはこれらの2つのUITableViewDelegateメソッドを実装し、オーバーライドfunc tableView(_ tableView: UITableView, heightForRowAt indexPath: IndexPath) -> CGFloat

0

により、セルの高さを設定することができます:あなたのダイナミックセル内

func tableView(_ tableView: UITableView, heightForRowAt indexPath: IndexPath) -> CGFloat { 
    return UITableViewAutomaticDimension 
    } 

    func tableView(_ tableView: UITableView, estimatedHeightForRowAt indexPath: IndexPath) -> CGFloat { 
    // return estimatedHeight 
    } 

ビューは、上、下、末尾、先頭と高さの制約を持っている必要があります。ビューの高さの拘束定数を設定すると、ビューの高さに従ってセルの高さが設定されます。

あなたは、ダイナミックセル内のビューの高さ制約プロパティを持つことができます。table.rowheightため,,

func tableView(_ tableView: UITableView, cellForRowAt indexPath: IndexPath) -> UITableViewCell { 
     let cell = tableView.dequeueReusableCell(withIdentifier: "CellId", for: indexPath) as! Cell 

    switch indexPath.row { 
    case 0: 
     cell.customViewHeightConstraint.constant = 100 
    case 1: 
     cell.customViewHeightConstraint.constant = 200 
    case 2: 
     cell.customViewHeightConstraint.constant = 300 
    case 3: 
     cell.customViewHeightConstraint.constant = 400 
    default: 
     cell.customViewHeightConstraint.constant = 100 
    } 

    return cell 
} 
+0

私は(arraycontainsthisvalue)heigt = 100 else height = 50に変更した場合、これを実行しています。条件が偽であるときに私に間違った高さを与えていることがありますが、それでも私に100点を与えているのはなぜですか? – user1960169

関連する問題