在 IOS 8 中,这样设置是没有问题的,但是在 IOS 7 中,这样的设置就会出现问题了,,无论你怎样设置,popover 出来的内容框大小依然是默认的大小。
_popoverController = [[UIPopoverController alloc] initWithContentViewController:_contentViewController];_popoverController.delegate = self;_contentViewController.preferredContentSize = _contentViewController.view.bounds.size;[_popoverController presentPopoverFromRect:position inView:view permittedArrowDirections:UIPopoverArrowDirectionUp | UIPopoverArrowDirectionDown animated:YES];
查了一下资料,在 IOS 7 中需要把
_contentViewController.preferredContentSize = _contentViewController.view.bounds.size;
提前到
_popoverController = [[UIPopoverController alloc] initWithContentViewController:_contentViewController];
之前。这样,设置 popover 的大小就能成功生效。
关于popoverContentSize 大小的问题,stackoverflow 的参考如下:
Take two steps to solve this
Step One:
As an immediate fix, you can setpreferredContentSizeproperty of UIViewController
before initalizingUIPopoverController
Step Two:
In iOS8,UIPopoverPresentationControlleris getting introduced as a replacement ofUIPopoverController
popoverViewController//existing code…}
As of now,pre-release documentationis available for further reference.
参考链接:
人性最可怜的就是:我们总是梦想着天边的一座奇妙的玫瑰园,