【发布时间】:2016-01-21 11:20:10
【问题描述】:
我在UIScrollView 中有一个底部栏UIView,里面有两个按钮。我正在使用hitTest 功能,以便仅为两个按钮启用user interaction。
代码只有在我触摸底部栏时才有效,但是,当我触摸屏幕的任何其他部分时,应用程序会崩溃说:
致命错误:在展开可选值时意外发现 nil (lldb)
class HelpBarViewClass: UIView {
@IBOutlet var backPageBtn: UIButton!
@IBOutlet var nextPageBtn: UIButton!
override func hitTest(point: CGPoint, withEvent event: UIEvent?) -> UIView? {
let subview: UIView = super.hitTest(point, withEvent: event)! // fatal error
return subview == self.nextPageBtn || subview == self.backPageBtn ? subview :nil
}
}
为什么会出现这个错误?
更新
感谢下面正确代码的回答:
class HelBarViewClass: UIView {
@IBOutlet var backPageBtn: UIButton!
@IBOutlet var nextPageBtn: UIButton!
override func hitTest(point: CGPoint, withEvent event: UIEvent?) -> UIView? {
let subview = super.hitTest(point, withEvent: event)
return subview == self.nextPageBtn || subview == self.backPageBtn ? subview : nil
}
}
【问题讨论】:
标签: ios uiview uiscrollview hittest