新しい iOS 8 では、これを簡単にする新しい方法があります。
自動レイアウト制約に関してセルの高さを計算する新しいパラメーターがあります。これはUITableViewAutomaticDimension
。viewWillAppear
ビューコントローラーのメソッドで使用できます。
目標 C:
- (void)viewWillAppear:(BOOL)animated {
[super viewWillAppear:animated];
self.tableView.estimatedRowHeight = 70.0; // for example. Set your average height
self.tableView.rowHeight = UITableViewAutomaticDimension;
[self.tableView reloadData];
}
迅速:
override func viewWillAppear(animated: Bool) {
self.tableView.estimatedRowHeight = 70 // for example. Set your average height
self.tableView.rowHeight = UITableViewAutomaticDimension
self.tableView.reloadData()
}
あなたの例であなたが望むようにうまく働きます。私に関しては、reloadData() のみに高さのものを追加しviewDidLoad
て残しました。便利なソースviewWillAppear
もあります。
ドキュメントから:The default value of rowHeight is UITableViewAutomaticDimension.
今のところコードはそのままにしておきますが、iOS 8 以降では行の高さを設定する必要がないことに注意してください。
主に行う必要があるのは、すべての制約を明示的に設定することです。たとえば、先頭、末尾、上、下などです。上記のコード行を追加せずに、最初に試してみてください。