Ios 可拖动UITextField在不应编辑时进入编辑状态';T
我正在为iPad开发一款iOS6应用程序。我编写了UITextField的一个子类,它允许用户围绕视图拖动、挤压和旋转字段。问题是,如果在没有旋转的情况下挤压字段,则在完成手势后,它将进入编辑模式。这不应该发生,我添加了一些行来禁用它,但它不会停止。我的代码如下:Ios 可拖动UITextField在不应编辑时进入编辑状态';T,ios,objective-c,uitextfield,draggable,Ios,Objective C,Uitextfield,Draggable,我正在为iPad开发一款iOS6应用程序。我编写了UITextField的一个子类,它允许用户围绕视图拖动、挤压和旋转字段。问题是,如果在没有旋转的情况下挤压字段,则在完成手势后,它将进入编辑模式。这不应该发生,我添加了一些行来禁用它,但它不会停止。我的代码如下: - (BOOL) canBecomeFirstResponder{ if (gesturing==YES) { return NO; }else return YES; } - (void) tapDetecte
- (BOOL) canBecomeFirstResponder{
if (gesturing==YES) {
return NO;
}else return YES;
}
- (void) tapDetected:(UITapGestureRecognizer*) pinchRecognizer {
if (gesturing==NO) {
[self becomeFirstResponder];
}
}
- (void) pinchDetected:(UIPinchGestureRecognizer*) pinchRecognizer {
CGFloat scale = pinchRecognizer.scale;
self.font = [self.font fontWithSize:self.font.pointSize*(scale)];
//self.transform = CGAffineTransformScale(self.transform, scale, scale);
[self sizeToFit];
pinchRecognizer.scale = 1.0;
if (pinchRecognizer.state == UIGestureRecognizerStateChanged) {
gesturing =YES;
}
if (pinchRecognizer.state == UIGestureRecognizerStateBegan) {
gesturing =YES;
}
if (pinchRecognizer.state == UIGestureRecognizerStateEnded) {
gesturing =NO;
}
}
- (void) panDetected:(UIPanGestureRecognizer *)panRecognizer {
CGPoint translation = [panRecognizer translationInView:self.superview];
CGPoint imageViewPosition = self.center;
imageViewPosition.x += translation.x;
imageViewPosition.y += translation.y;
self.center = imageViewPosition;
[panRecognizer setTranslation:CGPointZero inView: self.superview];
if (panRecognizer.state == UIGestureRecognizerStateChanged) {
gesturing=YES;
}
if (panRecognizer.state == UIGestureRecognizerStateEnded) {
gesturing=NO;
}
}
- (void) rotationDetected:(UIRotationGestureRecognizer *)rotationRecognizer{
CGFloat angle = rotationRecognizer.rotation;
self.transform = CGAffineTransformRotate(self.transform, angle);
rotationRecognizer.rotation = 0.0;
if (rotationRecognizer.state == UIGestureRecognizerStateChanged) {
gesturing = YES;
}
if (rotationRecognizer.state == UIGestureRecognizerStateEnded) {
gesturing = NO;
}
}
- (BOOL) gestureRecognizer:(UIGestureRecognizer *)gestureRecognizer shouldRecognizeSimultaneouslyWithGestureRecognizer:(UIGestureRecognizer *)otherGestureRecognizer {
return YES;
}
I默认情况下,
手势
的值为否
,如果您没有将其初始化为是
。已调试并确定在尝试应用按压时首先检测到的手势识别器是哪个
您支持同时手势识别,因此当您使用pinch
时,您的手指触摸可能会被检测为pan
。如果是这种情况,则如果(手势==否)
检测到的tapdeted:
方法中的条件得到满足,您的文本字段将成为第一响应者