1

プロトタイプ テーブル セルを含む UITableView があり、UIImageView、UILabel、および異なるタグ (つまり 100,200,300) を持つセルの UIButton から継承する 2 つの Buttons オブジェクトがあり、IB を使用してこれを作成しました。dequeueReusableCellWithIdentifier を使用して cellForRowAtIndexPath のセルを取得すると、常にセルが返されます。

初めて cellForRowAtIndex パスを実行すると [cell viewWithTag:TAG] は各 UI 要素の正しいオブジェクトを返しますが、2 回目の実行 (少しスクロールすると) では、nil である 2 つの UIButton オブジェクトを除いて、すべてのオブジェクトが正しく返されます。(デバッガーでは、それらのアドレスはすべてゼロです)。

他のすべてのテーブルビューは同様のコードで動作するため、何が原因かわかりません。

更新: cellForRow のボタンのタイプ ID を作成すると、それらは nil ではありませんが、オブジェクトをホバーすると (UIButton *) として表示されます。しかし、id オブジェクトにメッセージを送信する [cell ViewWithTag:Button1Tag] に続くコードがある場合、それは nil になります。非常に奇妙な。

4

1 に答える 1

0

OK、XCode内でGDB (これは素晴らしい)を使用して、 recursiveDescriptionを使用してセル内を調べました。タグがなくなったことを示していたので、cellForRow にタグを設定して行を保持し、元の IB セット タグを上書きしていることに気付きました。

于 2012-09-15T09:26:38.217 に答える