gpt4 book ai didi

swift - 使用 UIPopoverBackgroundView 自定义的 Popover 中的边框问题

转载 作者:可可西里 更新时间:2023-11-01 00:53:25 30 4
gpt4 key购买 nike

我自定义了一个 Popover,它通过以下方式创建了 UIPopoverBackgroundView 的子类:

class CustomPopoverBackgroundView: UIPopoverBackgroundView {

override var arrowOffset: CGFloat {

get{
return self.arrowOffset
}

set{
}
}

override var arrowDirection: UIPopoverArrowDirection {

get {
return UIPopoverArrowDirection.Up
}

set {
}
}

override init(frame: CGRect) {

super.init(frame: frame)
backgroundColor = UIColor(red: 0.19, green: 0.19, blue: 0.19, alpha: 1.0)

var arrowView = UIImageView(image: UIImage(named: "12_24_pop_black"))
arrowView.frame = CGRect(x: 17.0, y: -11.0, width: 24.0, height: 12.0)
self.addSubview(arrowView)
}

required init(coder aDecoder: NSCoder) {
fatalError("init(coder:) has not been implemented")
}

override class func wantsDefaultContentAppearance() -> Bool {
return false
}

override class func contentViewInsets() -> UIEdgeInsets{
return UIEdgeInsets(top: 0.0, left: 0.0, bottom: 0.0, right: 0.0)
}

override class func arrowHeight() -> CGFloat {
return 0.0
}

override class func arrowBase() -> CGFloat{
return 24.0
}
}

我这样做主要是因为我想创建一个没有 Apple 默认提供的圆角边框的弹出框。

问题是在 Popover 中我有一个灰色的 View 我不知道为什么 ViewController 没有完全展开我可以看到我在上面的代码中设置的背景颜色的边框(黑色)。

类似于 Popover 打开的这张图片:

enter image description here

我知道您可以为 Popover 加载边框,但就我而言,在某些情况下我会更改 View 的背景颜色。

我想做的是展开显示为 Popover 的 ViewController 以避免圆角,或者我不知道是否存在更好的解决方案。

如何解决这个问题?

提前致谢

最佳答案

您可以通过重写 Popover Controller 中的 de following 方法来解决此问题

override func viewWillAppear(animated: Bool)
{
super.viewWillAppear(animated)
self.view.superview?.layer.cornerRadius = 0
}

关于swift - 使用 UIPopoverBackgroundView 自定义的 Popover 中的边框问题,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/28439027/

30 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com