XOX*_*OXO 1 objective-c uibutton ios uipangesturerecognizer
我添加了一个UIPanGestureRecognizer
到UIView
,问题是当你在标签UIButton
内的S UIPanGestureRecognizer
仍处于启用状态.如何禁用UIPanGestureRecognizer
按钮?
您需要拥有手势识别器的委托(代表参考).例如,您的视图控制器可以是符合协议UIGestureRecognizerDelegate的委托.这样你就可以使用这个方法:
-(BOOL)gestureRecognizer:(UIGestureRecognizer *)gestureRecognizer shouldReceiveTouch:(UITouch *)touch
Run Code Online (Sandbox Code Playgroud)
在您的委托中,以避免在特定视图中识别手势.
您可以通过以下方式创建手势并将其分配给某个视图(ARC假设):
UIPanGestureRecognizer *panGesture = [[UIPanGestureRecognizer alloc] initWithTarget:self action:@selector(someMethodName:)];
panGesture.delegate = self;
UIView *someView = [[UIView alloc] initWithFrame:CGRectMake(0, 0, 320, 568)];
[someView addGestureRecognizer:panGesture];
Run Code Online (Sandbox Code Playgroud)
在这里,您可以获得有关如何处理手势以及避免在您感兴趣的某些视图上收到手势的更多详细信息:
基本上你需要做以下的事情来防止按钮上的手势:
-(BOOL)gestureRecognizer:(UIGestureRecognizer *)gestureRecognizer shouldReceiveTouch:(UITouch *)touch {
if ([touch view] == self.myButton){
return NO;
}
return YES;
}
Run Code Online (Sandbox Code Playgroud)
返回NO导致手势失败并允许其他视图继续处理触摸.
您还可以检查[触摸视图]是否类似于UIButton,使其更加通用并避免与所有按钮进行比较.
归档时间: |
|
查看次数: |
1290 次 |
最近记录: |