我有一个手势识别器附加到视图,并且工作正常,直到我将视图设置为第一响应者,如果视图中的点击点大于X和Y值,我会这样做.
- (IBAction)textVIEwTapped:(UIGestureRecognizer *)sender {CGPoint point = [sender locationOftouch:0 inVIEw:self.vIEw];NSLog(@"x ix %f,y is %f",point.x,point.y);if (point.x > 96 && point.y > 106) [self.myTextVIEw becomeFirstResponder];}
问题是,一旦它被设置为第一响应者,然后通过点击该文本视图外部来重新签名,我的手势识别器方法永远不会被再次调用.如果我点击没有设置第一响应者的区域,那么我的方法会在我点击时被多次调用.如果我设置然后辞职第一响应者,它在第一次辞职后没有响应.
- (IBAction)vIEwTapped:(UIGestureRecognizer *)sender { [self.vIEw endEditing:YES]; UITapGestureRecognizer *tap = [[UITapGestureRecognizer alloc] initWithTarget:self action:@selector(textVIEwTapped:)]; [self.myTextVIEw addGestureRecognizer:tap]; NSArray *gestures = [self.myTextVIEw gestureRecognizers]; NSLog(@"got %d recognizers",[gestures count]); }
在尝试的时候,如果我在每次辞职后添加一个新的手势识别器,那么这是有效的,但显然不是一个好的解决方案.
有什么想法吗?
解决方法 我有同样的问题,我通过实现虚拟UIGestureRecognizerDelegate解决了它将此添加到您的代码中
myGestuerRecognizer.delegate = self
然后实现UIGestureRecognizerDelegate
#pragma mark - UIGestureRecognizerDelegate-(BOol)gestureRecognizerShouldBegin:(UIGestureRecognizer *)gestureRecognizer{ return YES; }-(BOol)gestureRecognizer:(UIGestureRecognizer *)gestureRecognizer shouldRecognizeSimultaneouslyWithGestureRecognizer:(UIGestureRecognizer*)otherGestureRecognizer{ return YES; }-(BOol)gestureRecognizer:(UIGestureRecognizer *)gestureRecognizer shouldReceivetouch:(UItouch *)touch{ return YES; }
这对我有用
总结以上是内存溢出为你收集整理的ios – UIGestureRecognizer和UITextView全部内容,希望文章能够帮你解决ios – UIGestureRecognizer和UITextView所遇到的程序开发问题。
如果觉得内存溢出网站内容还不错,欢迎将内存溢出网站推荐给程序员好友。
欢迎分享,转载请注明来源:内存溢出
评论列表(0条)