弹出窗箭头颜色与视图控制器背景不同

25

标题已经很明确了。我有一个与按钮连接的视图控制器作为弹出窗口。视图控制器的背景颜色是灰色,但指向按钮的箭头的颜色是白色。非常感谢任何帮助。

5个回答

41

以下是我解决问题的方法:

popover = [[UIPopoverController alloc] initWithContentViewController:contentViewController];
popover.backgroundColor = contentViewController.view.backgroundColor;

这将弹出框的颜色与内容背景相匹配。


一个星期后得到了答案。@mahboudz 谢谢 - Sushil Sharma

19

适用于iOS 9.0及以上版本(cpvc是您的ViewController)

cpvc.popoverPresentationController.backgroundColor = cpvc.view.backgroundColor;

这个功能在iOS 8.0及以上版本中可用,并且可以从呈现VC的prepareForSegue中调用。 - Wil Macaulay

5

您是否正在使用IOS7 SDK?

也许您可以尝试:

[popover setBackgroundColor:[UIColor whiteColor]];

并确保将内容视图控制器的背景颜色设置为白色。

3

swift 4.2

navController?.popoverPresentationController?.backgroundColor = .black

1
我在iOS7中遇到了同样的问题(丑陋的白色“箭头”)。这似乎对我有用。UIPopoverController在iOS7之前不支持setBackgroundColor,因此需要进行检查。
if ([popoverController respondsToSelector:@selector(setBackgroundColor:)])
{
   [popoverController setBackgroundColor:[UIColor clearColor]];
}

网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接