popoverContentSize在iOS 8中没有响应

Jam*_*obo 8 objective-c ipad ios

我有一段代码如下:self.popOverController.popoverContentSize = CGSizeMake(248.0,216.0);

这适用于iOS 7及更低版本.但是,它不响应iOS 8中的CGSizeMake.无论CGSizeMake()中指定的值是什么,它都采用相同的默认大小.

请回复替代代码.

rat*_*tul 8

采取两个步骤来解决这个问题

第一步:

作为即时修复,您可以设置preferredContentSizeUIViewController的属性

[popoverViewController setPreferredContentSize:CGSizeMake(248.0,216.0)]; 
Run Code Online (Sandbox Code Playgroud)

在初始化之前 UIPopoverController

UIPopoverController *popoverController = [[UIPopoverController alloc]initWithContentViewController:popoverViewController];
Run Code Online (Sandbox Code Playgroud)

第二步:

在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...
}
Run Code Online (Sandbox Code Playgroud)

截至目前,预发布文档可供进一步参考.