popoverContentSize在iOS 8中没有响应

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

这在iOS 7及以下版本中工作正常。 但是,它不响应iOS 8中的CGSizeMake。无论CGSizeMake()中指定了什么值,它都采用相同的默认大小。

请用另一个代码回复。

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

步骤1:

作为一个直接的修复,你可以设置UIViewController的preferredContentSize属性

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

UIPopoverController之前

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

第二步:

在iOS8中, UIPopoverPresentationController被引入作为UIPopoverController的替代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... } 

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