我很难过的简单问题:
我正在使用UISlider
来检测用户拖动滑块的拇指(但不会点击)。这很有用,显然可以拖动拇指,但是当拖动事件停止时我需要得到通知。是否有一个控制事件,我没有看到,这将允许我区分停止拖动和停止水龙头?
或者是否有一些简单的方法可以在touchesEnded:
方法中完成此操作?
感谢任何帮助。感谢。
答案 0 :(得分:3)
使用此:
[slider addTarget:self action:@selector(slidingStopped:)forControlEvents:UIControlEventTouchUpInside];
- (void) slidingStopped:(id)sender
{
NSLog(@"stopped sliding");
}
答案 1 :(得分:1)
我知道这是一个老帖子,但这就是我所做的。它可以适应UISlider问题。
BOOL buttonDidMove = NO;
- (void)viewDidLoad
{
[super viewDidLoad];
UIButton *button = [UIButton buttonWithType:UIButtonTypeRoundedRect];
[button addTarget:self action:@selector(buttonMoved:withEvent:) forControlEvents:UIControlEventTouchDragInside];
[button addTarget:self action:@selector(buttonTouchUpInside) forControlEvents: UIControlEventTouchUpInside];
[button setTitle:@"Tap Me" forState:UIControlStateNormal];
button.frame = CGRectMake(80.0, 210.0, 160.0, 40.0);
button.backgroundColor = [UIColor yellowColor];
[self.view addSubview:button];
}
- (void)buttonTouchUpInside
{
if (buttonDidMove) {
buttonDidMove = NO;
return;
}
NSLog(@"buttonTouchUpInside");
[self initNetworkCommunication];
}
- (void)buttonMoved:(UIButton *)control withEvent:(UIEvent *)event
{
NSLog(@"buttonMoved");
buttonDidMove = YES;
UITouch *touch = [[event touchesForView:control] anyObject];
control.center = [touch locationInView:self.view];
}
希望这有帮助。
答案 2 :(得分:0)
[ratingScale addTarget:self action:@selector(slideEnds:) forControlEvents:UIControlEventTouchDragInside];
其中ratingScale将是您的样本UISlider& slideEnds将是您为上述事件触发的样本选择器。
touchDragInside条件确保只有在您继续拖动时才会触发选择器。如果您只是在滑块上注册水龙头,它就不会触发。