0

"heighForRowAtIndexPath"を実装する共通基底クラスを持つView Controllerは約30あります。今、私たちは最近、iOS 7のサポートを削除しました。これは、AutoLayoutを使ってわかりやすい自動高さ計算に晒されています。私はちょうどこの自動高さで素晴らしいだろうかなり複雑な細胞が表示されました。baseclassが実装しているときにUITableViewAutomaticDimensionを使用するにはどうすればいいですか?tableView:heightForRowAtIndexPath:

ドキュメントの状態この:

デリゲートは のtableView実装していない場合は、セルの行の高さを設定することがあります。heightForRowAtIndexPath:メソッドを。 rowHeightのデフォルト値はUITableViewAutomaticDimensionです。

私のベースクラスは高さを実装しているので、自動的に有効にならないようです。

これを回避する手段はありますか?どういうわけか、その特定のメソッドを「実装する」必要があります。

+1

あなたが 'あなたのビューコントローラクラスのheightForRowAtIndexPath'メソッドをオーバーライドするために必要と' UITableViewAutomaticDimensionを返すことがあります; 'あそこ。 – Mrunal

+0

再オーバライドして 'UITableViewAutomaticDimension'の値を返すとどうなりますか? –

+0

数秒で私を打つ! XD –

答えて

2

あなたは、サブクラス(複数可)にheightForRowAtIndexPathからUITableViewAutomaticDimensionを返すことができます。

-(CGFloat) tableView:(UITableView *)tableView heightForRowAtIndexPath:(NSIndexPath *)indexPath { 
    return UITableViewAutomaticDimension; 
} 
+0

パーフェクト!どうもありがとう。私はどこに書いてもそれを見つけることができなかった。 –

+0

@ JonathanWinger-Lang:AppleLayout Guide:https://developer.apple.com/library/content/documentation/UserExperience/Conceptual/AutolayoutPG/WorkingwithSelf-SizingTableViewCells.htmlのAppleドキュメントにあります。 – Mrunal

+0

@Mrunalはそれですか?私がここで読むことができるのは、テーブルビュー(セルではない)のrowSizeをautomaticDimensionに設定する必要があることです。デリゲートメソッドから返すことについては何もありません。 rowSizeがメソッドに接続されている可能性がありますが、明白ではありません。これは、「通常はデリゲートメソッドを使用する」ということで、今は使用しないでください。代わりに、rowSizeをテーブルビューに設定する必要があります。とにかく、それは私には分かりません。 –

関連する問題