【发布时间】:2015-07-26 02:08:30
【问题描述】:
嗨,当我触摸已选择的片段时,我想获得事件。
我已经实现了以下解决方案
import UIKit
class MARSSegmentController: UISegmentedControl {
/*
// Only override drawRect: if you perform custom drawing.
// An empty implementation adversely affects performance during animation.
override func drawRect(rect: CGRect) {
// Drawing code
}
*/
override func touchesBegan(touches: Set<NSObject>, withEvent event: UIEvent) {
let oldValue:NSInteger = self.selectedSegmentIndex
super.touchesBegan(touches, withEvent: event)
if oldValue == self.selectedSegmentIndex{
sendActionsForControlEvents(UIControlEvents.ValueChanged)
}
}
}
这工作正常,但如果我点击非选定段,ValueChanged 事件会执行两次。
实现点击手势不起作用。意味着当我点击非选定段时,它会在使用点击手势时显示旧的选定段。
如果有任何解决方案,请提出建议。
【问题讨论】:
-
如果我错了,请原谅我,但我认为这会在触地和触地时运行。
-
您可以先检查 UIEvent 的值类型是否已更改,然后不要调用此 sendActionsForControlEvents(UIControlEvents.ValueChanged)
标签: ios swift uisegmentedcontrol