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... }
截至目前, 预发布文件可供进一步参考。