Google 地图上带有箭头和圆角的自定义信息窗口弹出窗口

问题描述

我正在重载 UIPopoverBackgroundView 以在地图上实现自定义信息窗口。我希望它的底部一个小的三角形箭头(指向地图的标记),只有右侧有圆角。

这就是我现在所拥有的:

class MyInfoWindow: UIPopoverBackgroundView {
    var m_arr_off: CGFloat;
    var m_arr_dir: UIPopoverArrowDirection;
    
    override var arrowOffset: CGFloat {
        get {
            return self.m_arr_off
        }
        set {
            self.m_arr_off = newValue
            setNeedsLayout()
        }
    }

    override var arrowDirection: UIPopoverArrowDirection {
        get {
            return self.m_arr_dir
        }
        set {
            self.m_arr_dir = newValue
            setNeedsLayout()
        }
    }

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

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

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

    override init(frame: CGRect) {
        self.m_arr_off = 0
        self.m_arr_dir = .down
        super.init(frame: frame)
    }

    required init?(coder aDecoder: NSCoder) {
        self.m_arr_off = 0
        self.m_arr_dir = .down
        super.init(coder: aDecoder)
    }
    
    func loadView() -> MyInfoWindow{
        let myInfoWindow = Bundle.main.loadNibNamed("MyInfoWindow",owner: self,options: nil)?[0] as! MyInfoWindow
        return myInfoWindow
    }

}

信息窗口确实出现在地图上的正确位置。问题是箭头没有出现,我是否遗漏了一些明显的东西?另外,不确定如何在一侧实现圆角。

解决方法

暂无找到可以解决该程序问题的有效方法,小编努力寻找整理中!

如果你已经找到好的解决方法,欢迎将解决方案带上本链接一起发送给小编。

小编邮箱:dio#foxmail.com (将#修改为@)

相关问答

Selenium Web驱动程序和Java。元素在(x,y)点处不可单击。其...
Python-如何使用点“。” 访问字典成员?
Java 字符串是不可变的。到底是什么意思?
Java中的“ final”关键字如何工作?(我仍然可以修改对象。...
“loop:”在Java代码中。这是什么,为什么要编译?
java.lang.ClassNotFoundException:sun.jdbc.odbc.JdbcOdbc...