我的应用程序中有以下弹出窗口:
但我希望它看起来像这个经过编辑的图像(请注意,即使箭头也有边框):
现在这可能吗?我已经在 UIViewController
中尝试了以下内容:
self.view.layer.borderColor = UIColor.white.cgColor
self.view.layer.borderWidth = 2
但这对箭头不起作用。有什么转机吗?
最佳答案
我花了一段时间,但终于解决了这个问题。它以一个通用的 UiPopoverPresentationController 开始。目前还没有什么特别之处。
此 Controller 将自身隐藏在 viewWillAppear
和 viewDidAppear
之间的某处。因此,当弹出框成形时,我采用了它自己的 mask 路径,并用它来制作带有笔触的子层。
override func viewWillLayoutSubviews() {
guard let shapeLayer = view.superview?.superview?.mask?.layer as? CAShapeLayer else { return }
let borderLayer = CAShapeLayer()
borderLayer.path = shapeLayer.path
borderLayer.lineWidth = 4
borderLayer.strokeColor = borderColor.cgColor
borderLayer.fillColor = UIColor.clear.cgColor
borderLayer.frame = shapeLayer.bounds
view.superview?.superview?.layer.addSublayer(borderLayer)
}
结果如下所示。
关于swift - 如何在 Swift 中的弹出窗口及其箭头上添加边框颜色?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/53096119/