【发布时间】:2014-10-22 14:21:23
【问题描述】:
我想展示一个弹出框。目前我可以检索整个单元格的框架(如here 所述)。是否可以获取配件的框架(UITableViewCellAccessoryType)?
我想检索accessoryButtonTappedForRowWithIndexPath 或didSelectRowAtIndexPath 中的值。
【问题讨论】:
标签: ios uitableview accessoryview
我想展示一个弹出框。目前我可以检索整个单元格的框架(如here 所述)。是否可以获取配件的框架(UITableViewCellAccessoryType)?
我想检索accessoryButtonTappedForRowWithIndexPath 或didSelectRowAtIndexPath 中的值。
【问题讨论】:
标签: ios uitableview accessoryview
我能想到的最好方法是计算固定尺寸的框架。首先,您使用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;
【讨论】:
accessoryType(我想要的)和accessoryView(自定义视图)。是否可以获得accessoryType的默认框架?
accessoryView 为零,因为我从未设置它(我只设置了accessoryType)。您是否有检索配件框架的解决方案(UITableViewCellAccessoryType)?那会很好。