Ich folge dieser post, um eine UIPopoverBackgroundView
zu implementieren. Ich überprüfte die UIPopoverBackgroundView
Klasse, ich denke, ich habe alle erforderlichen Funktionen und Variablen implementiert, aber der Fehler besteht immer noch beim Ausführen.Fehler: [UIPopoverBackgroundView setArrowOffset:] muss von Unterklassen implementiert werden
Terminating app due to uncaught exception 'NSInternalInconsistencyException', reason: '-[UIPopoverBackgroundView setArrowOffset:] must be implemented by subclassers.'
import UIKit
class CustomPopoverBackground: UIPopoverBackgroundView {
override func layoutSubviews() {
super.layoutSubviews()
}
override var arrowOffset: CGFloat {
get {
return 0.0
}
set {
super.arrowOffset = newValue
}
}
override var arrowDirection: UIPopoverArrowDirection {
get {
return UIPopoverArrowDirection.Up
}
set {
super.arrowDirection = newValue
}
}
override class func contentViewInsets() -> UIEdgeInsets {
return UIEdgeInsetsMake(10, 10, 10, 10)
}
override class func arrowBase() -> CGFloat {
return 2.0
}
override class func arrowHeight() -> CGFloat {
return 2.0
}
}
Wo habe ich falsch gemacht? Was ist setArrowOffset
, ich habe es nicht in der Klasse UIPopoverBackgroundView
oder UIPopoverBackgroundViewMethods
Protokoll gefunden.
Sie können nicht 'super.arrowOffset = newValue' in Ihrem' arrowOffset' Setter tun. Der Superklassensetter löst diese Ausnahme aus. – dan
@dan Könnten Sie eine Antwort geben, um zu zeigen, was ich stattdessen tun sollte? – luiyezheng