2016-08-31 5 views
-2

画像にタグを付けると表示されることはありませんか?どうして?なぜ私のビューはUIPanGestureRecognizerを認識できないのですか?

enter image description here

enter image description here

+0

UIPanGestureRecognizerに代理人を追加し、ターゲットはself not.videoでなければなりません.vi ew1 – vaibby

+2

イメージの代わりにポストコードを入力してください。 –

+0

あなたはより良い答えのために書かれたものを投稿してください。初心者では普通です:) –

答えて

0
- (void)viewDidLoad { 
    [super viewDidLoad]; 

    _view2 = [[V0 alloc ]initWithFrame:self.view.bounds]; 
    CGRect a = self.view2.frame; 
    a.origin.x = 100; 
    a.origin.y = 150; 
    _view2.frame = a; 
    _view2.userInteractionEnabled = YES; 

    [self.view2 addGestureRecognizer:[[UIPanGestureRecognizer alloc]initWithTarget:self.view2 action:@selector(Up:)]]; 

私はinitWithFrameが、その後、私の見解は、私のジェスチャーを認識することができます追加

0

userInteractionEnabledプロパティのデフォルト値はUIImageViewクラスにNOに設定されています。たぶんそれはあなたの問題です。

From UIImageView Reference:

このプロパティは、UIViewの親クラスから継承されます。このクラスは、このプロパティのデフォルト値をNOに変更します。

は、このフラグメントのコードでチェック:

- (void)viewDidLoad { 
    [super viewDidLoad]; 

    UIImageView *imageView = [[UIImageView alloc] initWithFrame:self.view.bounds]; 
    [self.view addSubview:imageView]; 

    imageView.userInteractionEnabled = YES; 

    UIPanGestureRecognizer *panGesture = [[UIPanGestureRecognizer alloc] initWithTarget:self action:@selector(panGestureRecognized:)]; 
    [imageView addGestureRecognizer:panGesture]; 
} 

- (void)panGestureRecognized:(UIGestureRecognizer *)gestureRecognizer { 
    NSLog(@"It Works!"); 
} 
+0

私はimage.Viewをmain.storybordで作成し、userInteractionEnabledをyesにして、このようにしてみます。有効ではありません。 –

0

このコードを適用してうまく働い:

-(void)initialization 
UIPanGestureRecognizer *panRecognizer = [[[UIPanGestureRecognizer alloc] initWithTarget:self action:@selector(move:)] autorelease]; 
    [panRecognizer setMinimumNumberOfTouches:1]; 
    [panRecognizer setMaximumNumberOfTouches:1]; 
    [panRecognizer setDelegate:self]; 
    [imageview addGestureRecognizer:panRecognizer]; 
    imageview.userInteractionEnabled = YES; 
} 
- (void)move:(UIPanGestureRecognizer *)gestureRecognizer 
{ 
    UIView *piece = imageview; 

    [self adjustAnchorPointForGestureRecognizer:gestureRecognizer]; 

    if ([gestureRecognizer state] == UIGestureRecognizerStateBegan || [gestureRecognizer state] == UIGestureRecognizerStateChanged) { 
     CGPoint translation = [gestureRecognizer translationInView:[piece superview]]; 
     CGPoint translatedCenter = CGPointMake([piece center].x + translation.x, [piece center].y + translation.y); 
     CGPoint center = [self centerWithBounds:translatedCenter andViewFrame:[piece frame] andBoundingFrame:[[piece superview] frame]]; 
     [piece setCenter:center]; 
     [gestureRecognizer setTranslation:CGPointZero inView:[piece superview]]; 
    } 
} 
+0

初期化をどこに追加すればよいですか?私はviewDidLoadでコードを削除する必要がありますか? –

+0

あなたはviewdidload [self initialization]でこの初期化メソッドを呼び出す必要があります。 –

関連する問題