当设置backgroundColor
到[UIColor blackColor]
的UIPopoverController
一切都很好,并提出正确的iOS7和iOS8上。
我通过
[aPopover presentPopoverFromBarButtonItem:self.navigationItem.rightBarButtonItem
permittedArrowDirections:UIPopoverArrowDirectionAny
animated:YES];
旋转设备后,弹出窗口backgroundColor
将重置为默认颜色(在这种情况下为白色)。
在iOS 7中不会发生这种情况。仅在iOS 8中
我已经尝试过
- (void)presentPopoverFromRect:(CGRect)rect
inView:(UIView *)view
permittedArrowDirections:(UIPopoverArrowDirection)arrowDirections
animated:(BOOL)animated;
并且使用进行重新定位,UIPopoverControllerDelegate
并且出现相同的问题。
最后的信息:仅当在UINavigationBar上显示弹出窗口时才出现此问题,而在常规菜单UIView
或任何其他菜单上显示时则没有UIButton
。
谢谢你的帮助
我在iOS8上也遇到了类似的问题。除了旋转外,当弹出框更改其大小时(例如,当键盘出现以编辑弹出框中的某些文本字段时),背景色也会被重置。关键的观察结果是,问题通常发生在其箭头位于内容边缘的弹出式窗口中(从UIBarButtonItem
全屏视图控制器显示弹出式窗口时就是这种情况)。因此,我的解决方法是修改sourceRect
弹出窗口的箭头,使其足够远离箭头的角。例如,在我的特定情况下,我有一个带有自定义33x33视图的条形按钮项(用作sourceView
),并且通过设置sourceRect
为{20, 30, 0, 0}
而不是自定义视图的边界解决了该问题(尽管我认为确切的所需偏移量可能取决于弹出窗口的大小)。
本文收集自互联网,转载请注明来源。
如有侵权,请联系[email protected] 删除。
我来说两句