2014-07-16 15 views
8

Mam fragment kodu, który jest następujący: self.popOverController.popoverContentSize = CGSizeMake (248,0, 216.0);popoverContentSize nie odpowiada w iOS 8

Działa to dobrze w iOS 7 i poniżej. Jednak nie reaguje na CGSizeMake w systemie iOS 8. Bez względu na to, jaka wartość jest określona w CGSizeMake(), przyjmuje on ten sam domyślny rozmiar.

Proszę podać alternatywny kod.

Odpowiedz

8

dwa kroki, aby rozwiązać ten

Krok pierwszy:

jako natychmiastowe poprawki, można ustawić preferredContentSize własność UIViewController

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

przed initalizing UIPopoverController

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

Krok drugi:

W systemów iOS 8, UIPopoverPresentationController jest uzyskiwanie wprowadzony jako zamiennik 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... 
} 

W chwili obecnej, pre-release documentation jest dostępna do dalszego odniesienie.