0

UITableViewCellカスタムsを使用する場合の最善のアプローチ/デザインは何だろうと思っています。

私がやっている 1 つの方法は、UITableViewCell. お気に入り-initWithLabel:groups:error

次に、次のように初期化しますCustomUITableViewCell *cell = [CustomUITableViewCell alloc] initWithLabel:@"Hello" groups:@[@"1", @"2", @"3"] error:NO];

その後、おそらく後でエラーCustomUITableViewCellを YES に更新する必要がある場合は、セルをリロードCustomUITableViewCellして init に YES を指定します。

セル全体をリロードするのではなく- (void)setError:(BOOL)error、セルのエラーを更新する必要があるときはいつでも設定できるように、セルのセッターを持っている方が「良い」かどうか疑問に思っています。

2 つのオプションを比較した場合の長所と短所は何ですか?

4

2 に答える 2

1

あなたの最初の選択は良いアプローチではないようです。毎回セルを作成している場合は問題ありません。しかし、実際に起こっているのは、テーブル ビューが 10 ~ 15 個のセル (依存) のみを作成し、後でそれらが再利用されることです。したがって、外部から呼び出さない限り、初期化は実行されません(それは良くありません)。

cellForRow したがって、カスタム セルでの適切なアプローチは、プロパティを使用して、データソース オブジェクトで変更されるすべてのものを公開することです。外部クラスからアクセスできる場合は、ラベル、エラー...をプロパティとして作成します。したがって、任意の値を簡単に変更できます。

于 2013-05-20T12:26:59.767 に答える
0

変更可能なメンバー変数がある場合は、必ずセッターを使用する必要があります (プロパティである必要があります)。そのため、毎回クラスを置き換える必要はありません。ソースコードはより明確になり、プログラムはより効率的になります。クライアントが新しいオブジェクトを作成するときにその変数を明示的に設定することを奨励することが良い考えであると思われる場合は、init に含めることもできます。

于 2013-05-20T12:03:34.897 に答える