更改从 Swift 中的故事板创建的弹出框的箭头颜色
Posted
技术标签:
【中文标题】更改从 Swift 中的故事板创建的弹出框的箭头颜色【英文标题】:Change arrow color for popover created from storyboard in Swift 【发布时间】:2016-04-27 07:51:36 【问题描述】:我正在尝试更改从按钮定义为情节提要 segue(未以编程方式构建)的弹出框的默认弹出框箭头颜色。下图为默认的白色弹出框箭头:
当我添加时
navigationController?.popoverPresentationController?.backgroundColor = myNavBarColor
到弹出框呈现的UIViewController
的viewWillAppear
方法,结果如下:
在主UIViewController
的prepareForSegue
方法期间为UIPopoverPresentationController
定义一个新的UIPopoverBackgroundView
类“为时已晚”。
我希望对于这样一个常见的问题会有一个简单的修复(使用与弹出框相同的故事板 segue)。
【问题讨论】:
在prepareForSegue
中设置背景颜色。喜欢这个segue.destinationViewController.popoverPresentationController.backgroundColor
。
它对我有用,非常感谢! ;)
请注意,我首先必须设置segue.destination.modalPresentationStyle = .popover
,否则segue.destination.popoverPresentationController
将是nil
。除此之外,解决方案运行良好。
【参考方案1】:
设置 viewController 的 popoverPresentationController 的背景颜色:
let viewController = YOUR_VIEW_CONTROLLER
viewController.modalPresentationStyle = .popover
if let presentation = viewController.popoverPresentationController
presentation.backgroundColor = UIColor.white
present(viewController, animated: true, completion: nil)
【讨论】:
【参考方案2】:您也可以将其设置在 popoverPresentationController 中的视图中
override func viewDidLoad()
super.viewDidLoad()
popoverPresentationController?.backgroundColor = view.backgroundColor
【讨论】:
以上是关于更改从 Swift 中的故事板创建的弹出框的箭头颜色的主要内容,如果未能解决你的问题,请参考以下文章