2014-07-16 37 views
8

我有一段代碼,如下所示: self.popOverController.popoverContentSize = CGSizeMake(248.0,216.0);popoverContentSize在iOS中沒有響應8

這適用於iOS 7及以下版本。但是,它不響應iOS 8中的CGSizeMake。無論CGSizeMake()中指定了什麼值,它都採用相同的默認大小。

請用另一個代碼回覆。

回答

8

採取兩個步驟來解決這個

步驟一:

作爲一個立即解決,你可以設置的UIViewController

[popoverViewController setPreferredContentSize:CGSizeMake(248.0,216.0)]; 

preferredContentSize財產initalizing UIPopoverController

UIPopoverController *popoverController = [[UIPopoverController alloc]initWithContentViewController:popoverViewController]; 

第二步:

在iOS8上,UIPopoverPresentationController是越來越引入作爲替換的UIPopoverController

if ([popoverViewController respondsToSelector:@selector(popoverPresentationController)]) { 
    popoverViewController.modalPresentationStyle = UIModalPresentationPopover; 
    [popoverViewController setPreferredContentSize:CGSizeMake(248.0,216.0)]; 

    UIPopoverPresentationController *popoverPresentation = popoverViewController.popoverPresentationController; 
    [popoverPresentation setSourceView:_sourceView]; 
    [popoverPresentation setSourceRect:_sourceRect]; 
    [popoverPresentation setPermittedArrowDirections:UIPopoverArrowDirectionUp]; 

    [self presentViewController:popoverViewController animated:YES completion:nil]; 
} else { 
    //existing code... 
} 

截至目前,pre-release documentation可用於進一步參考。