我有一系列分段控件,它们在发生“值更改”事件时调用方法。
我的问题是,如果用户执行从控件开始的多点触控手势,值会发生变化:四指向上滑动(切换应用程序)或五指捏合(返回主屏幕)。我尝试更改方法以仅响应“Touch Up Inside”事件,但无论如何,分段控件仍会通过多点触控手势更改值。
是否有某种方法可以将 UISegmentedControl 子类化,以便 UIControlEventValueChanged 仅在单个段存在“内部修饰”事件时发生在控件上?
非常感谢!
我有一系列分段控件,它们在发生“值更改”事件时调用方法。
我的问题是,如果用户执行从控件开始的多点触控手势,值会发生变化:四指向上滑动(切换应用程序)或五指捏合(返回主屏幕)。我尝试更改方法以仅响应“Touch Up Inside”事件,但无论如何,分段控件仍会通过多点触控手势更改值。
是否有某种方法可以将 UISegmentedControl 子类化,以便 UIControlEventValueChanged 仅在单个段存在“内部修饰”事件时发生在控件上?
非常感谢!
问题是您的 UISegmentedControl 响应“UIControlEventValueChanged”。如果您只希望在内部触摸时调用您的方法,则让 UISegmentedControl 响应“UIControlEventTouchUpInside”。您不需要继承或覆盖任何东西。
UIButton *button = [UIButton buttonWithType:UIButtonTypeRoundedRect];
[button addTarget:self action:@selector(yourMethod:)
forControlEvents:UIControlEventTouchUpInside];
在这里可以找到可用的控制事件:https ://developer.apple.com/library/ios/documentation/uikit/reference/UIControl_Class/Reference/Reference.html