Кнопка вспомогательного просмотра UITableViewCell не отображается в портретном режиме ipad
Я новичок в ios. Пожалуйста, проведите меня, если вы нашли что-то не так. Вот мой сценарий. UITableViewCell показывает метку и кнопку. Кнопка должна появляться только тогда, когда выделена ячейка. Иногда они оба перекрываются, если текст метки большой. Поэтому решил добавить кнопку в качестве вспомогательного вида. Добавление кнопки в UITableViewCell's Accessory View работает в iPhone. Кнопка отображается только в альбомном режиме iPad. Кнопка не отображается в портретном режиме iPad. Я что-то пропустил. Там кто-нибудь нашел что-то подобное.
- (void)tableView:(UITableView *)tview didSelectRowAtIndexPath:(NSIndexPath *)indexPath {
UITableViewCell *cell = [tview cellForRowAtIndexPath:indexPath];
cell.accessoryView = joinButton;
}
- (void)tableView:(UITableView *)tView didDeselectRowAtIndexPath:(NSIndexPath *)indexPath {
UITableViewCell *cell = [tView cellForRowAtIndexPath:indexPath];
cell.accessoryView = nil;
}
- (void)viewDidLoad{
NSString *joinLabel = NSLocalizedString(@"Join", @"");
self.joinButton = [UIButton buttonWithType:UIButtonTypeRoundedRect];
[joinButton setTitle:joinLabel forState:UIControlStateNormal];
/* set join button frame **/
}
- (void)tableView:(UITableView *)tableView willDisplayCell:(UITableViewCell *)cell forRowAtIndexPath:(NSIndexPath *)indexPath {
if (cell.isSelected) {
cell.accessoryView = joinButton; // No reason to create a new one every time, right?
}
else {
cell.accessoryView = nil;
}
}
Она просто показывает кнопку соединения в портретном режиме, только когда она уже отображается в ландшафтном режиме, а затем вы меняете поворот с альбомного на портретный. Повторное нажатие на другую ячейку не отображает кнопку на выбранной ячейке. В идеале он должен показывать кнопку каждый раз, когда вы нажимаете на ячейку в обоих режимах ориентации.
Спасибо
1 ответ
Вы перезагружаете табличное представление на вращение?
Вы выполнили кодирование для (cell.accessoryView = joinButton;) в didSelectRowAtIndexPath вместо того, чтобы выполнять кодирование в cellForRowAtIndexPath UITableViewDataSource или в willDisplayCell UITableViewDelegate.