を私はこれは古い記事です知っているが、ここで私がやったことです。これは、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];
}
これが役に立ちます。
ドラッグした後に指を持ち上げて単にタッチした場合はどうすれば検出できますか? –