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
所以我猜在cellForRowAtIndexPath
和willDisplayCell
之间是调整弹出框大小的地方。
【讨论】:
以上是关于UITableView 在 UIPopoverController 中时,为啥单元格边界和帧大小不正确?的主要内容,如果未能解决你的问题,请参考以下文章
modalInPopover=YES 仍然允许故事板布局上的 UIToolbar 活动
在 UITableView 中的 UINib 中重新加载 UITableView
使用 UITableView 在 UITableView 上自动滚动 UIImageView
如果 UITableView 在 UIScrollView 中,则无法在 UITableView 上执行滑动删除