私はUITableView
を持っています。私のテーブルビューでは、私は動的に別のビューを自分のセルに追加し、セルの高さを広げたいと思います。私はいくつかの例を見てきましたが、それらはUILabels
です。 UILabelsは、テキストの高さに応じて高さを変更できます。しかし、手動で別のビューを追加してそれらのセルを拡張するにはどうすればよいですか?手動でセルの高さは、その簡単に計算を使用している場合動的にUITableViewCellの高さを拡張するには?
くれ おかげ
私はUITableView
を持っています。私のテーブルビューでは、私は動的に別のビューを自分のセルに追加し、セルの高さを広げたいと思います。私はいくつかの例を見てきましたが、それらはUILabels
です。 UILabelsは、テキストの高さに応じて高さを変更できます。しかし、手動で別のビューを追加してそれらのセルを拡張するにはどうすればよいですか?手動でセルの高さは、その簡単に計算を使用している場合動的にUITableViewCellの高さを拡張するには?
くれ おかげ
を助けてください、あなたは別のビューを追加した後、あなたは高さを計算し、reloadDataまたはreloadRowsAtIndexPathsを呼び出し、テーブルビューでの高さを返します。 heightForRowAtIndexPath関数です。 セルの高さを自動計算する場合は、計算方法をシステムに知らせる必要があります。自動レイアウトをはっきりと完全に設定する必要があります。別のビューの左、右、上、下の制約を追加してください。高さを計算します。したがって、細胞は拡大されます。
あなたはこれらの2つのUITableViewDelegateメソッドを実装し、オーバーライドfunc tableView(_ tableView: UITableView, heightForRowAt indexPath: IndexPath) -> CGFloat
により、セルの高さを設定することができます:あなたのダイナミックセル内
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
}
私は(arraycontainsthisvalue)heigt = 100 else height = 50に変更した場合、これを実行しています。条件が偽であるときに私に間違った高さを与えていることがありますが、それでも私に100点を与えているのはなぜですか? – user1960169
ありがとう:
制約一定の値がcellForRowAtに変更することができますデフォルトのサイズを設定するか、動的に設定する必要がありますか? – user1960169
このように設定することができます:self.tableView.estimatedRowHeight = 100; //すべてのセルのような値 self.tableView.rowHeight = UITableViewAutomaticDimension; – zacks