【问题标题】:Get width/frame of entire UITableViewCell获取整个 UITableViewCell 的宽度/框架
【发布时间】:2011-07-26 06:07:34
【问题描述】:

我有一个方法,我有一个(渲染的)UITableViewCell*。我想知道整个单元格的宽度/框架。

cell.frame 似乎不起作用 - 它给了我一个随机单元格的框架。我得到的最接近的是cell.contentView.frame,但它不包括accessoryView 覆盖的区域(请参阅http://developer.apple.com/library/ios/#documentation/UserExperience/Conceptual/TableView_iPhone/TableViewCells/TableViewCells.html#//apple_ref/doc/uid/TP40007451-CH7)。 cell.contentView.superview.frame 也不起作用 - 它在某个任意位置为我提供了一个框架,就像 cell.frame 一样。

cell.contentView.width + cell.accessoryView.width 有效,除非附件视图为UITableViewCellAccessoryNone

任何想法如何在所有情况下获得UITableViewCell 的整个帧/宽度?

【问题讨论】:

    标签: iphone ios uitableview


    【解决方案1】:

    试试这个,

    NSLog(@"Cell Width = %f",cell.frame.size.width);
    NSLog(@"Cell Height = %f",cell.frame.size.height);
    

    它将显示当前单元格的宽度和高度。

    【讨论】:

    • 是的,宽度/高度是准确的。但是, cell.offset 很不稳定——知道为什么吗?
    • 试试这个偏移量.. cell.frame.x, cell.frame.y
    • 试试这个cell.frame.origin.xcell.frame.origin.y
    【解决方案2】:

    此代码为您提供由 indexPath 选择的特定单元格的框架:

     // Get the cell rect and adjust it to consider scroll offset
        CGRect cellRect = [tableView rectForRowAtIndexPath:indexPath];
        cellRect = CGRectMake(cellRect.origin.x - tableView.contentOffset.x, cellRect.origin.y - tableView.contentOffset.y, cellRect.size.width, cellRect.size.height);
    

    【讨论】:

      【解决方案3】:

      cell.frame 将始终为您提供您正在发送消息的单元格的框架。

      即使它确实返回了一个随机单元格,您仍然应该能够使用框架的宽度,因为所有单元格的宽度都相同。

      【讨论】:

      • 是的,我可以使用宽度,但不能使用框架。任何线索为什么它不会返回当前单元格的框架? y 偏移量很差。 cell.contentView.frame 似乎是正确的(除了宽度问题)
      • frame 方法必须返回正在发送消息的对象的框架,在本例中为单元格。如果它返回另一个对象的框架,你应该向 Apple 提交一个错误(或仔细检查你的代码以确保框架实际上是错误的)。
      【解决方案4】:

      我认为默认情况下,单元格将使用 UITableView 宽度的 100%,因此 UITableView 的宽度等于单元格的宽度,因为您可能会使用以下方法设置表格单元格高度:

      [UITableView setRowHeight:tableCellHeight];
      

      其中 tableCellHeight 是您选择的数字,而 UITableView 是您的 UITableView 的名称,而不是 UITableView 类本身。

      那么你会得到表格单元格的宽度和高度,还是我误解了你的问题?

      【讨论】:

        猜你喜欢
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 2016-09-21
        • 2015-04-29
        • 1970-01-01
        • 2020-06-14
        • 1970-01-01
        • 1970-01-01
        相关资源
        最近更新 更多