0

在此处输入图像描述

在此处输入图像描述

您好,我在 UIScrollView 中嵌入了静态内容的 UITableView,所以我刚刚在弹出窗口中设置了大小:

- (CGSize)contentSizeForViewInPopover
{    
    return CGSizeMake(600, 670);
}

但是,我得到了不同的弹出高度(见附件)。在 IOS4.3 中高度大于在 IOS5 中。我不想检查 IOS 版本和增加/减少高度。

请指教。

谢谢

4

2 回答 2

0

您可以根据 tableview 的高度动态计算弹出框的高度,并contentSizeForViewInPopoverView像这样覆盖:

- (CGSize)contentSizeForViewInPopoverView {
    CGFloat width = 200.0; // Currently no way to obtain the width dynamically, only height.
    CGRect rect = [self.tableView rectForSection:[self.tableView numberOfSections] - 1];
    CGFloat height = CGRectGetMaxY(rect);
    return (CGSize){width, height};
}

这假设您有 1 个部分。如果你有更多,你只需要使用rectForSection确定每个部分的高度并将它们相加。

于 2013-04-07T16:27:54.953 回答
0

据我所知,当使用导航控制器作为弹出内容时,你必须

  1. contentSizeForViewInPopover根控制器(或显示为第一个的任何人)上设置。(不要尝试在导航控制器上设置大小)。

  2. 每当您推送/弹出控制器并且想要更改堆栈上新控制器的弹出框大小时,请setPopoverContentSize:animated:显式调用。AUINavigationControllerDelegate对此有好处。

于 2013-04-07T17:36:42.180 回答