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

标签 swift ios8 popover

我通过以下方式自定义了一个 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
    }
}

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

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

像这张弹出窗口打开的图片:

enter image description here

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

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

如何解决这个问题?

提前致谢

最佳答案

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

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

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

相关文章:

jquery - 忽略父级的最佳 div 宽度

angular - 大型 Angular Material 弹出框应使父内容可滚动

cocoa - 如何将 NSNumber 与快速枚举值进行比较?

ios - iOS 8.0 公开版本的内部版本号是多少?

iOS UIAlertView 权限 Alpha 阴影

ios - 无法停止 NSTimer

angularjs - Angular-ui + D3 : how to implement contextual menu (popover vs modal)?

swift - 如何取消接收器内的组合订阅?

python - BlueSocket 在连接到 Python Socket 套接字时说连接被拒绝

ios - 将函数 void 移动到 bool Swift