UITableView 在 UIPopoverController 中时,为啥单元格边界和帧大小不正确?

Posted

技术标签:

【中文标题】UITableView 在 UIPopoverController 中时,为啥单元格边界和帧大小不正确?【英文标题】:Why is cell bounds and frame size incorrect when UITableView is in UIPopoverController?UITableView 在 UIPopoverController 中时,为什么单元格边界和帧大小不正确? 【发布时间】:2013-02-13 12:55:03 【问题描述】:

我有一个带有 XIB 的 UIViewController 子类,它是 320 宽和 400 高。 XIB 有一个 UITableView 填充视图的宽度和高度。

在VC的viewDidLoad方法中,我有如下

self.contentSizeForViewInPopover = CGSizeMake(600.0, 400.0);

tableview 在弹出窗口中正确显示。到目前为止一切都很好。

现在我正在以编程方式将 UIProgressView 添加到 tableview 单元格,但有些东西我不明白。在 cellForRowAtIndexPath 方法中,我想设置 UIProgressView 相对于单元格宽度的宽度,但 cell.frame.size.width 和 cell.bounds.size.width 是原始的 320 而 不是 实际显示的 600。

我可以通过使用 tableview 的宽度值来解决它,但我很困惑为什么这些值在单元格级别不正确。

【问题讨论】:

【参考方案1】:

似乎尺寸值符合预期

- (void)tableView:(UITableView *)tableView willDisplayCell:(UITableViewCell *)cell forRowAtIndexPath:(NSIndexPath *)indexPath

所以我猜在cellForRowAtIndexPathwillDisplayCell 之间是调整弹出框大小的地方。

【讨论】:

以上是关于UITableView 在 UIPopoverController 中时,为啥单元格边界和帧大小不正确?的主要内容,如果未能解决你的问题,请参考以下文章

modalInPopover=YES 仍然允许故事板布局上的 UIToolbar 活动

在 UITableView 中的 UINib 中重新加载 UITableView

使用 UITableView 在 UITableView 上自动滚动 UIImageView

如果 UITableView 在 UIScrollView 中,则无法在 UITableView 上执行滑动删除

如何在没有数组的 UITableView 中显示 UITableView Cell?

尝试在用户向 iOS 中的 UITableView 添加行时动态增加 UITableView 的高度