【问题标题】:Get frame for UITableViewCellAccessoryType获取 UITableViewCellAccessoryType 的框架
【发布时间】:2014-10-22 14:21:23
【问题描述】:

我想展示一个弹出框。目前我可以检索整个单元格的框架(如here 所述)。是否可以获取配件的框架(UITableViewCellAccessoryType)?

我想检索accessoryButtonTappedForRowWithIndexPathdidSelectRowAtIndexPath 中的值。

【问题讨论】:

    标签: ios uitableview accessoryview


    【解决方案1】:

    我能想到的最好方法是计算固定尺寸的框架。首先,您使用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);
    

    cellPositionrectForRowAtIndexPath 的结果。现在您可以使用convertRect:toView: 将其转换为真实坐标。

    但如果出现新的屏幕尺寸,该解决方案将不起作用。由于目前没有其他解决方案,我会选择这个或整个单元格大小。

    【讨论】:

      【解决方案2】:

      didSelectRowAtIndexPath

      UITableViewCell *cell = [tableView cellForRowAtIndexPath:indexPath];
      CGRect accessoryRect = cell.accessoryView.frame;
      

      【讨论】:

      • 好的,必须区分accessoryType(我想要的)和accessoryView(自定义视图)。是否可以获得accessoryType的默认框架?
      • 哦,抱歉,您在问题中写了附件视图。这会返回 nil 吗?
      • 是的,我有点困惑。 accessoryView 为零,因为我从未设置它(我只设置了accessoryType)。您是否有检索配件框架的解决方案(UITableViewCellAccessoryType)?那会很好。
      猜你喜欢
      • 1970-01-01
      • 1970-01-01
      • 2023-03-12
      • 2018-06-22
      • 1970-01-01
      • 2013-10-04
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多