8

カスタムの PopoverBackgroundView を実装しています。Swift のドキュメントで指定されているように、次のようにメソッドを実装する必要があります。

class SettingsPopoverBackgroundView: UIPopoverBackgroundView {

override var arrowOffset: CGFloat {
    get {
        return 0.0
    }
    set {
        super.arrowOffset = newValue
    }

}

override var arrowDirection: UIPopoverArrowDirection {
    get {
        return UIPopoverArrowDirection.Up
    }
    set {
        super.arrowDirection = newValue
    }
}

func contentViewInsets() -> UIEdgeInsets {
    return UIEdgeInsetsMake(10, 10, 10, 10)
}

func arrowBase() -> CGFloat {
    return 2.0
}

func arrowHeight() -> CGFloat {
    return 2.0
}
}

ただし、まだエラーが発生します。

UIPopoverBackgroundView の contentViewInsets はサブクラスで実装する必要があります。

私は contentViewInsets を実装していますが、それでもエラーが発生するため、ここで見られるように、Apple にはこのサブクラス化に関して文字化けした例外があるようです。

これは、prepareForSegue メソッドでバックグラウンド クラスをポップオーバーに設定する方法です。

popover.popoverBackgroundViewClass = SettingsPopoverBackgroundView.self

そうですか?

誰が私が間違っているのかを見ることができますか?

4

1 に答える 1