К сожалению, «accessoryTypeForRowWithIndexPath» устарел.
Ключ к различному поведению (между UITableViewCellAccessoryDisclosureIndicator и UITableViewCellAccessoryDetailDisclosureButton) заключается в том, что INDICATOR раскрытия не «отслеживает», тогда как КНОПКА раскрытия делает «отслеживание».
То, что вам нужно сделать, это обеспечить собственное распознавание того, где пользователь коснулся ячейки, и использовать это как часть дополнительного кода, чтобы затем позвонить в ваш
- (void)tableView:(UITableView*) tableView accessoryButtonTappedForRowWithIndexPath:(NSIndexPath*) indexPath
рутина - это то, что происходит с раскрытием кнопки.
Возможно, вы захотите использовать что-то вроде UITapGestureRecognizer, присоединенного к AccessoryView в вашей пользовательской ячейке. Обычно это NIL, поэтому вам нужно добавить UIView в ячейку через IB или программно - изменить его размер - и подключить к объекту ячейки. Затем вы добавили бы некоторый код в функцию - (id)initWithStyle:(UITableViewCellStyle) style reuseIdentifier:(NSString*) reuseIdentifier
вашей пользовательской ячейки.
Общая идея показана ниже.
UITapGestureRecognizer *tapGesture = [[UITapGestureRecognizer alloc]
initWithTarget:myAccessoryView action:@selector(didTap:)];
tapGesture.delegate = (id <UIGestureRecognizerDelegate>)myTableViewControllerDelegate;
[containerView addGestureRecognizer:tapGesture];
[tapGesture release];
Функция didTap: затем перенаправит ваш код или просто сделает то, что вы могли бы сделать в другой подпрограмме.
Печально, что к трем различным вспомогательным предметам относятся по-разному. Так что, если вы не хотите, чтобы в вашей камере была гигантская голубая штука, похоже, вам придется придумать какой-то дополнительный код, чтобы все работало так, как вам бы хотелось.
Одним из преимуществ использования AccessoryView в пользовательской ячейке является то, что вы можете поместить UIImageView в представление и затем поместить изображение в UIImageView - это означает, что вы можете использовать любое изображение вместо простого раскрытия «>».