我用以下方式定制了一个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没有完全展开,我可以看到上面我用代码(黑色)设置的背景颜色的边框。
就像这张波波弗的照片一样:

我知道您可以为Popover加载边框,但在我的例子中,我会在某些情况下更改View的背景色。
我想做的是扩展显示为Popover的ViewController,以避免出现圆角,或者我不知道是否存在更好的解决方案。
怎样才能解决这个问题呢?
提前感谢
发布于 2015-02-20 21:05:44
您可以通过重写Popover控制器中的de跟踪方法来解决这个问题。
override func viewWillAppear(animated: Bool)
{
super.viewWillAppear(animated)
self.view.superview?.layer.cornerRadius = 0
}https://stackoverflow.com/questions/28439027
复制相似问题