使用多点触控手势防止UISegmentedControl更改值

时间:2013-09-07 04:58:56

标签: ios multi-touch uisegmentedcontrol

我有一系列分段控件,在发生“Value Changed”事件时调用方法。

我的问题是,如果用户执行从控件开始的多点触摸手势,则值会发生变化:四指向上滑动(切换应用)或五指捏(返回主屏幕)。我已经尝试更改方法以仅响应“Touch Up Inside”事件,但分段控件仍然会使用多点触控手势更改值。

是否有某种方法可以对UISegmentedControl进行子类化,以便只有在控件中出现UIControlEventValueChanged(如果单个段中存在“touch up inside”事件?)

非常感谢!

1 个答案:

答案 0 :(得分:1)

问题是你的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