我有一段代码如下: self.popOverController.popoverContentSize = CGSizeMake(248.0,216.0);
这在iOS 7及更低版本中运行良好。但是,它不响应iOS 8中的CGSizeMake。无论CGSizeMake()中指定的值是什么,它都采用相同的默认大小。
请回复替代代码。
答案 0 :(得分:8)
采取两个步骤来解决这个问题
第一步:
作为即时修复,您可以设置UIViewController的preferredContentSize
属性
在初始化[popoverViewController setPreferredContentSize:CGSizeMake(248.0,216.0)];
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可供进一步参考。