我想展示一个弹出框。目前我可以检索整个单元格的框架(如此处所述)。是否可以获取配件的框架(UITableViewCellAccessoryType
)?
我想检索accessoryButtonTappedForRowWithIndexPath
or中的值didSelectRowAtIndexPath
。
我想展示一个弹出框。目前我可以检索整个单元格的框架(如此处所述)。是否可以获取配件的框架(UITableViewCellAccessoryType
)?
我想检索accessoryButtonTappedForRowWithIndexPath
or中的值didSelectRowAtIndexPath
。
我能想到的最好的方法是计算固定尺寸的框架。首先你得到单元格的框架rectForRowAtIndexPath
。比你计算accessoryType
框架。就我而言,我可以提供 C# 代码,但您可以轻松地将其转换为 Objective-C 或推出您自己的解决方案:
int detailDisclosureSize = 24;
RectangleF accessoryPosition = new RectangleF(cellPosition.X + cellPosition.Width - detailDisclosureSize * 2.45f, cellPosition.Y + cellPosition.Height/2 - detailDisclosureSize/2, detailDisclosureSize, detailDisclosureSize);
cellPosition
是 的结果rectForRowAtIndexPath
。现在您可以使用 将其转换为真实坐标convertRect:toView:
。
但如果出现新的屏幕尺寸,该解决方案将不起作用。由于目前没有其他解决方案,我将使用这个或整个单元格大小。
在didSelectRowAtIndexPath
UITableViewCell *cell = [tableView cellForRowAtIndexPath:indexPath];
CGRect accessoryRect = cell.accessoryView.frame;