カスタム アクセサリ ボタンを備えた UITableView があります。表のセルが選択されると、アクセサリ ボタンが強調表示された状態になります。それは良いことです。別のセルが選択され、最初のセルが選択解除されると、アクセサリ ボタンは強調表示されていない状態に戻りません。
これは、セル (Rose) が選択されていないが、アクセサリ ボタンが選択されていることを示すスクリーン ショットです。
ここで提案された解決策を試しました。deselectRowAtIndexPath を呼び出した後、AccessoryDetailDisclosureButton の選択が解除されない 動作しません。テーブル内のすべてのセルを再読み込みしましたが、まだアクセサリ ボタンが強調表示されていません。
新しく選択されたボタンのセレクターとメソッドの両方で、セル内のボタンの強調表示を明示的に解除しようとしましたtableView:accessoryButtonTappedForRowWithIndexPath:
。喜びはありません。
ボタンを作成するコードは次のとおりです。
- (UITableViewCell *) tableView: (UITableView *) tableView cellForRowAtIndexPath: (NSIndexPath *) indexPath {
...
UIButton *folderButton = [UIButton buttonWithType: UIButtonTypeCustom];
folderButton.frame = CGRectMake(0.0, 0.0, 33.0, 33.0);
[folderButton setImage: [UIImage imageNamed: @"open_document.png"] forState: UIControlStateNormal];
[folderButton addTarget: self action: @selector(documentButtonAction:) forControlEvents: UIControlEventTouchUpInside];
[folderButton setTag: [program tag]];
cell.accessoryView = folderButton;
...
}
これまでに見つけた唯一の解決策は、強調表示されたボタンの画像を強調表示されていない画像に設定することですが、タップしてもボタンが強調表示されないため、これもかなりひどいものです。
アクセサリ ボタンのハイライトを解除するにはどうすればよいですか?