Получить кадр UITableViewCellAccessoryDetailButton (который равен нулю)

Я пытался представить поповер из UITableViewCellаксессуар ViewView. Вид по умолчанию UITableViewCellAccessoryDetailButton, Видимо accessoryView nilи, согласно этому вопросу, это предполагаемое поведение. Мой вопрос, как я могу получить кадр аксессуара, даже если свойство accessoryView равно нулю?

1 ответ

Решение

Вам не нужно получать кадр, чтобы представить поповер. Когда у вас есть вспомогательное представление, ширина contentView ячейки становится более узкой, поэтому она заканчивается непосредственно перед вспомогательным представлением (это можно увидеть, если вы зададите для contentView цвет фона). Вы можете использовать эту ширину, чтобы расположить ваш поповер слева от кнопки,

-(void)tableView:(UITableView *)tableView accessoryButtonTappedForRowWithIndexPath:(NSIndexPath *)indexPath {
    UIPopoverController  *aPopover = [[UIPopoverController alloc] initWithContentViewController:[UIViewController new]];
    UITableViewCell *cell = [self.tableView cellForRowAtIndexPath:indexPath];
    CGRect popRect = CGRectMake(cell.frame.origin.x + cell.contentView.frame.size.width, cell.frame.size.height/2.0, 1, 1);
    [aPopover presentPopoverFromRect:popRect inView:cell permittedArrowDirections:UIPopoverArrowDirectionRight animated:YES];
}
Другие вопросы по тегам