如何将UISegmentedControl子类化,以便各个段识别UILongPressGestureRecognizer?

时间:2011-08-22 02:45:26

标签: ios uigesturerecognizer uisegmentedcontrol

首先关闭this question有助于我理解如何为长按压子类化UIButton。我想对UISegmentedControl做同样的事情,但我不知道如何能够识别哪个段被按下,因为UISegmentedControl允许直接访问它的段(UISegmentedControl.h将它们显示为私有)。我可以自定义一些UIButtons看起来像UISegmentedControl但是我还必须实现瞬时开关逻辑。哪个不是什么大问题但继承UISegmentedControl对我来说似乎更清晰。

顺便说一句,我正在使用此控件来模仿收音机的预设控制:点击以转到已保存的电台并按住以将当前电台分配到该电台。

1 个答案:

答案 0 :(得分:2)

我在没有子类化的情况下尝试了这个,它似乎有效。

UILongPressGestureRecognizer* recognizer = [[UILongPressGestureRecognizer alloc] initWithTarget:self action:@selector(pressGesture:)];
recognizer.delegate = self;
[mySegCtrl addGestureRecognizer:recognizer];
[recognizer release];

...

-(void)pressGesture:(UILongPressGestureRecognizer*)gesture
{
    NSLog(@"pressGesture %@", gesture);
}

长按首先选择片段然后触发手势。如果你没有得到回调检查我的代码 - 我被困了一段时间因为我没有设置recognizer.delegate = self。