// 実際の質問
nib で指定されたものとは異なるセル識別子を使用して、nib ファイル (tableviewcell) をロードする際に助けが必要です。
// 私がやっていることの背景 私は
いくつかのラベル、いくつかの画像、いくつかのボタンを持つカスタム UITableViewCell を持っています。これらはすべて nib ファイルに配置されています。テーブルビュー セルのコンテンツは、特定の条件に基づいて動的に変更する必要があります。つまり、横長の場合はボタンが表示されません。ラベルに表示するコンテンツがない場合、ラベルは表示されません。左側の隣接するラベル/ビューは、欠落しているラベル/ボタンのスペースを埋めるために拡張する必要があります。
私はこれを機能させることができます。私がこれを行った方法は、cellForRowAtIndexPath
I - を使用して
表示する必要のないビューを削除し、
調整が必要なビューを呼び出します。 removeFromSuperView
frame
setNeedsDisplay
セルをデキューするために、nib ファイルに記載されているのと同じセル識別子を使用します。返されたセルが nil の場合、 を使用しloadNibNamed:withOwner:options
て nib をロードします。ただし、再利用されているセルには、既に削除されている可能性があるため、条件が満たされていない場合にコンテンツを表示するために必要なビューがない可能性があるため、前後にスクロールすると問題が発生するのではないかと心配しています。
この問題を修正するために、セルの異なるルック アンド フィールをトリガーするさまざまな条件に対して、異なるセル識別子を使用することを計画しています。または、ビューを非表示にして、隣接するビューを非表示のビューに拡張することも検討しています。このように、異なるセル識別子を扱う必要はありません。
Edit2:
隣接するビューのフレームを非表示にして調整するという私の代替アプローチは、私のニーズに合っていました。
ただし、上記で説明した実際の質問に対する答えを見つけたいと思っています。
// 考えられる解決策関数のパラメーターを
介してセル識別子を nib 読み込みコードに渡すことができるかどうか疑問に思っていました。これは可能ですか?これを達成するためのサンプルコードを提供できれば、それは素晴らしいことです。 options
loadNibNamed
御時間ありがとうございます。