您好,我在 UIScrollView 中嵌入了静态内容的 UITableView,所以我刚刚在弹出窗口中设置了大小:
- (CGSize)contentSizeForViewInPopover
{
return CGSizeMake(600, 670);
}
但是,我得到了不同的弹出高度(见附件)。在 IOS4.3 中高度大于在 IOS5 中。我不想检查 IOS 版本和增加/减少高度。
请指教。
谢谢
您好,我在 UIScrollView 中嵌入了静态内容的 UITableView,所以我刚刚在弹出窗口中设置了大小:
- (CGSize)contentSizeForViewInPopover
{
return CGSizeMake(600, 670);
}
但是,我得到了不同的弹出高度(见附件)。在 IOS4.3 中高度大于在 IOS5 中。我不想检查 IOS 版本和增加/减少高度。
请指教。
谢谢
您可以根据 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
确定每个部分的高度并将它们相加。
据我所知,当使用导航控制器作为弹出内容时,你必须
在contentSizeForViewInPopover
根控制器(或显示为第一个的任何人)上设置。(不要尝试在导航控制器上设置大小)。
每当您推送/弹出控制器并且想要更改堆栈上新控制器的弹出框大小时,请setPopoverContentSize:animated:
显式调用。AUINavigationControllerDelegate
对此有好处。