Как добавить границу к стрелке Popover? - PullRequest
0 голосов
/ 10 января 2019

Я создал вид поповера примерно так (обратите внимание на цвет). Есть ли способ добавить границу в Popover?

Я пытался использовать UIBezierPath для вырезания шаблона, но он не работал. Есть ли что-то еще, что я мог сделать?

  class IncutoNotifTableArrow: UIView {

func bezierPathArrowCut() -> UIBezierPath {
    let path = UIBezierPath()
    path.move(to: CGPoint(x: 0.0, y: 10.0))
    path.addLine(to: CGPoint(x: self.frame.width - ((UIScreen.main.bounds.width) * 0.24 - 20.0), y: 10.0))
    path.addLine(to: CGPoint(x: self.frame.width - ((UIScreen.main.bounds.width) * 0.24 - 40.0), y: 0.0))
    path.addLine(to: CGPoint(x: self.frame.width - ((UIScreen.main.bounds.width) * 0.24 - 60.0), y: 10.0))
    path.addLine(to: CGPoint(x: self.frame.width, y: 10.0))
    path.addLine(to: CGPoint(x: self.frame.width, y: self.frame.height))
    path.addLine(to: CGPoint(x: 0.0, y: self.frame.height))
    print(path.cgPath)

    path.close()
    return path
}

override func draw(_ rect: CGRect) {
    let path = bezierPathArrowCut()
    UIColor.white.setFill()
    path.fill()
}



}

Вот что я получаю

Это ожидаемый результат

1 Ответ

0 голосов
/ 10 января 2019

Вам потребуется создать подкласс UIPopoverBackgroundView, который будет выполнять ваш собственный рисунок. Затем установите popoverBackgroundViewClass на UIPopoverPresentationController как ваш подкласс.

...