我在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.