0

私のアプリでは、画面をタッチすると、編集可能なものUITextFieldが画面に表示されます。新しく追加したものを画面上で動かせるようにしたいと思いUITextFieldsます。また、回転ジェスチャとピンチジェスチャを追加したいと思います。画面をタップするたびに新しいサブビューが追加されるため、これを今すぐ行うのは非常に困難です(UITextField)。以下は私のコーディングです:

- (IBAction)addText:(UITapGestureRecognizer *)recognizer 
{ 
   if (recognizer.state == UIGestureRecognizerStateEnded) 
   {       
        UITextField *newText = [[UITextField alloc] initWithFrame:CGRectMake(40, 205, 280, 128)];
        newText.hidden = NO;
        [self.view addSubview:newText];
        newText.text = @"phrase";
        [newText setFont:[UIFont fontWithName:@"ArialRoundedMTBold" size:60]];
        newText.borderStyle = UITextBorderStyleNone;
        UIPanGestureRecognizer *pan= [[UIPanGestureRecognizer alloc] initWithTarget:newText action:nil];

        CGPoint translation = [pan translationInView:newText];
        pan.view.center = CGPointMake(pan.view.center.x + translation.x, pan.view.center.y + translation.y);
        [pan setTranslation:CGPointMake(0,0) inView:self.view];
     }
}
4

1 に答える 1

1

ジェスチャレコグナイザ間の依存関係を設定する方法はいくつかあります。ここで役立つと思われる1つの方法は、requireGestureRecognizerToFail:メソッドです。レコグナイザーを作成したら、次panを追加します。

[recognizer requireGestureRecognizerToFail:pan];

これで、ユーザーがパンしていないrecognizerとパン認識機能が判断しない限り、(変数内の)タップ認識機能はアクティブになりません。

于 2012-07-17T04:49:40.570 に答える