私が個人的に作成した の をtag
inに設定し、サブビューを左または右に配置する必要があるかどうかを示すようにします。これを行うのは安全ですか、それとも Apple がこのセルのタグの値を台無しにしますか? セルの種類ごとに個別のセル識別子を使用できることはわかっていますが、サブビューといくつかの色の配置を除いて、両方のセルはほとんど同じです。(チャットの吹き出しでネイティブ メッセージ アプリを再作成しています。)UITableViewCell
initWithStyle:reuseIdentifier:
tableView:cellForRowAtIndexPath:
0
1
4 に答える
UITableViewCell
の (または任意UIView
の の) タグを任意の値に設定することは絶対に安全です。誰も (Apple を含む) アプリケーションの制御外でこのタグの値をいじることはありません。
それは問題ありませんが、タグを設定するより良い場所tableView:willDisplayCell:forRowAtIndexPath:
は、UITableViewDelegate のメソッドです。ドキュメントによると:
テーブル ビューは、cell を使用して行を描画する直前に、このメッセージをデリゲートに送信します。これにより、デリゲートはセル オブジェクトを表示する前にカスタマイズできます。このメソッドにより、デリゲートは、テーブル ビューによって以前に設定された状態ベースのプロパティ (選択や背景色など) をオーバーライドする機会が与えられます。デリゲートが戻った後、テーブル ビューはアルファとフレームのプロパティのみを設定し、スライド インまたはスライド アウト時に行をアニメーション化するときにのみ設定します。
UITableViewCell
を与えても大丈夫だと思いますtag
。Interface Builder を使用すると、それを行うことができます。それでも、そうすることに不安を感じることは理解できます。通常、 を介して別のビューに明示的に追加するビューにタグを付けますaddSubview:
。しかし、考えてみてください。Apple がビュー コントローラの 内のビューのタグのいずれかの値を台無しにすると、 などview
の機能が壊れる可能性があります[self.view viewWithTag:TEXT_FIELD_TAG]
。だから、私は彼らがそうするだろうとは思わない. Apple はタグ整数 <= 10 を予約しているため、タグ値には整数 > 10 を使用する必要があると聞いたことがありますが、それがどのように当てはまるかわかりません。