Я следую этому post для реализации UIPopoverBackgroundView
. Я проверил класс UIPopoverBackgroundView
, я думаю, что я реализовал все необходимые функции и переменные, но ошибка все еще сохраняется при запуске.Ошибка: [UIPopoverBackgroundView setArrowOffset:] должен быть реализован подклассами
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
}
}
Где я неправ? Что такое setArrowOffset
, я не нашел его в классе UIPopoverBackgroundView
или UIPopoverBackgroundViewMethods
протокола.
Вы не можете использовать 'super.arrowOffset = newValue' в своем устройстве set arrow arrow. Этот суперпользователь выбрасывает это исключение. – dan
@dan Не могли бы вы дать ответ, чтобы показать, что я должен делать вместо этого? – luiyezheng