私は2種類のセルを持つカスタムUITableViewを持っています。 1つのセルは、タイプチェックマークの通常のアクセサリの間を切り替えるように設定されています。別のセルはアクセサリタイプとしてカスタムイメージを持つように設定されます。アクセサリイメージが反対のタイプに変更されて選択されると、 "Selected"または "Unselected"メッセージが表示されます。それは次のようにUIImageViewsが初期化されている重要な場合なぜUITableViewCell AccessoryView:アクセサリビューをUIImageViewと同じに設定する無限ループ
if (self.selectedIndex == indexPath.row) {
cell.accessoryView = self.selectedImageView;
}else
cell.accessoryView = self.unSelectedImageView;
:
-(UIImageView *)selectedImageView
{
if (!_selectedImageView) {
_selectedImageView = [[UIImageView alloc] initWithImage:[UIImage imageNamed:@"Check"]];
}
return _selectedImageView;
}
-(UIImageView *)unSelectedImageView
{
if (!_unSelectedImageView) {
_unSelectedImageView = [[UIImageView alloc] initWithImage:[UIImage imageNamed:@"noCheck"]];
}
return _unSelectedImageView;
}
私は誰かがこの質問に答える見た:UITableCell AccessoryView: Setting accessoryView equal to UIImageView infinite loop
彼は言った:私はここに私自身の答えを考え出したが、していますUIImageViewsは共有することができないので、可視セルごとに異なるUIImageViewのインスタンス化が必要です。今あなたは知っている。
しかし、なぜわからないのですか?
ありがとうございます。:) –