2012-04-24 133 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

相關問題