开发者

How do I subclass UISegmentedControl so that individual segments recognize a UILongPressGestureRecognizer?

开发者 https://www.devze.com 2023-03-30 05:17 出处:网络
First off this 开发者_运维技巧question has been helpful in my understanding of how to subclass UIButton for long presses. I would like to do the same for UISegmentedControl, however I don\'t see how I

First off this 开发者_运维技巧question has been helpful in my understanding of how to subclass UIButton for long presses. I would like to do the same for UISegmentedControl, however I don't see how I would be able to identify which segment was held down since UISegmentedControl does allow direct access to it's segments (UISegmentedControl.h shows them as private). I could just customize a few UIButtons to look like an UISegmentedControl however I would also have to implement the momentary switch logic. Which wouldn't be a big deal but subclassing UISegmentedControl seems cleaner to me.

BTW, I'm using this control to imitate a radio's preset controls: tap to go to a saved station and hold to assign the current station to that segment.


I tried this without subclassing and it seems to work.

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

...

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

Long press first selects the segment then fires the gesture. If you aren't getting the callback check my code - I got stuck for a while because I wasn't setting recognizer.delegate=self.

0

精彩评论

暂无评论...
验证码 换一张
取 消

关注公众号