2012-04-24 85 views
0

enter image description here在IOS4 contentSizeForViewInPopover不同高度和IOS5

enter image description here

你好, 我的UITableView与嵌入的UIScrollView 在酥料饼,所以我刚才设置的大小静态内容:

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

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

请指教。

感谢

回答

0

据我所知,使用导航控制器作为酥料饼的内容时,则必须

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

  2. 无论何时按下/弹出控制器,并且您希望堆栈中新控制器的弹出窗口大小发生更改,请明确呼叫setPopoverContentSize:animated:。 A UINavigationControllerDelegate对此很有帮助。

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来确定每个部分的高度并将其相加。

+0

'[UITable contentSize]'不完全一样 – Sulthan 2013-04-07 17:30:55

+0

@Sulthan这只能如果要手动调用'setPopoverContentSize:animated'。如果您不想手动设置弹出窗口的大小 - 即仅使用'initWithContentViewController' - 则不能这样做,因为在这种情况下,'contentSizeForViewInPopover'被称为_before_'viewWillAppear'。所以tableView的contentSize还没有设置,并且始终为0。 – memmons 2013-04-07 18:56:33

相关问题