条件の結果に応じて、表のセルに UIImageView を表示したい。それ以外の場合は、UITableViewCellAccessoryCheckmark を表示します。IBでセルを構築したいと思います。UIImageView を表示したくないときにどうすればよいかわからない部分。すべてをプログラムで構築する場合は、必要に応じて UIImageView を追加します。しかし、それは IB で行われるため、UIImageView は常にそこにあります。デフォルトではセルをそのままにしておく必要があります (画像が表示されます)。それ以外の場合は、UIImageView を削除して UITableViewCellAccessoryCheckmark を表示しますか? それが完了した場合、アクセスして削除できるように UIImageView にタグが必要になりますか?
2612 次
1 に答える
6
UIImageView を含む任意のコントロールの可視性を簡単に制御できます。IB で何かを構築したい場合、1 つの解決策は、必要なコントロールを追加し、それらをプロパティとして公開してから、特定のセルに不要なものを非表示にすることです。
例えば
cell.image.hidden = YES;
非表示の場合、描画オーバーヘッドはありません。セルに何千行もある場合でも、実際のセルはほとんどないため、かなり効率的なソリューションです。[tableView dequeueReusableCellWithIdentifier] を呼び出すとセルが再利用されることに注意してください (これを行う必要があります)。そのため、可視性が変更された可能性のあるコントロールを明示的に表示/非表示にする必要があります。
別の方法として、画像のあるセルとないセルを用意し、テーブルにデータを追加するときに正しいセルを選択することもできます。類似しているがわずかに異なる 2 つのアセットを管理するセルの場合、おそらく苦痛でしょう。
于 2009-03-25T19:19:34.953 に答える