我试图从UITableViewCell
的附件视图中呈现弹出窗口。该视图是默认的UITableViewCellAccessoryDetailButton
。显然,accessoryView是nil
,根据this question,这是一个预期的行为。我的问题是,即使accessoryView属性为nil,我如何获得附件的框架?
答案 0 :(得分:2)
您无需让框架显示弹出窗口。当你有一个附件视图时,单元格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];
}