UIPopoverPresentationController / UIPopoverController在接口旋转时丢失backgroundColor

时间:2014-11-11 19:39:30

标签: ios cocoa-touch uipopovercontroller popover presentviewcontroller

我在iOS中有一个菜单,我正在弹出窗口中显示。我可以分别使用UIPopoverController和UIPopoverPresentation控制器在iOS7和iOs8中呈现一个popover。我遇到了一个问题,虽然当弹出窗口可见并且设备旋转时,弹出窗口在动画期间瞬间消失,然后在动画后重新出现。问题是,当弹出窗口重新出现时,其背景颜色将被绘制为默认背景颜色。

我正在使用backgroundColor属性设置颜色。

self.popoverPresentationController.backgroundColor = [UIColor grayColor]; // iOS 8 style

我90%确定这实际上是Apple实施中的一个错误。我在旋转属性后的backgroundColor中看到的值是正确的,但绘制的像素不是。我想知道是否有其他人遇到过这个问题并找到了解决方法。如果雷达打开我会跟着它,如果没有,我会自己提交。

我将添加我如何呈现popover。在这两个版本中,我使用barButtonItem作为我的锚点。

[self.menuPopoverController presentPopoverFromBarButtonItem:item permittedArrowDirections:UIPopoverArrowDirectionAny animated:animated];

这里使用的是新的iOS8 UIPresentationPopoverController:

UIPopoverPresentationController *popover = self.popoverPresentationController;
popover.permittedArrowDirections = UIPopoverArrowDirectionAny;
popover.barButtonItem = item;
[viewController presentViewController:self animated:YES completion:nil];  // I'm presenting a view controller from within itself.

0 个答案:

没有答案