首先关闭this question有助于我理解如何为长按压子类化UIButton。我想对UISegmentedControl做同样的事情,但我不知道如何能够识别哪个段被按下,因为UISegmentedControl允许直接访问它的段(UISegmentedControl.h将它们显示为私有)。我可以自定义一些UIButtons看起来像UISegmentedControl但是我还必须实现瞬时开关逻辑。哪个不是什么大问题但继承UISegmentedControl对我来说似乎更清晰。
顺便说一句,我正在使用此控件来模仿收音机的预设控制:点击以转到已保存的电台并按住以将当前电台分配到该电台。
答案 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。