2016-05-31 4 views
-1

ボタンUIScrollViewUIPanGestureを使用して別のUIViewにドラッグします。これらの両方のビューはXib Viewの子です。私はすでにUIButtonViewのコピーを作成しようとしましたが、これをスムーズに動かすことはできません。ここでUIButtonスクロールビューをiOSのUIViewにドラッグする方法

iは実装していますいくつかのコードです:

-(void) PanGestureFunc :(UIPanGestureRecognizer *) recognizer 
{ 
    CGRect originOnScreen = [recognizer.view convertRect:self.view.bounds toView:nil]; 





    if(recognizer.state == UIGestureRecognizerStateBegan) 
     { 

      if([[recognizer.view superview].subviews containsObject:recognizer.view]) 
      { 
       btn = (UIButton *)recognizer.view; 
       btn.tag = [recognizer.view tag]; 

       [recognizer.view removeFromSuperview]; 
       [self.view addSubview:btn]; 

        float pointX = originOnScreen.origin.x + btn.frame.size.width/2; 
        float pointY = originOnScreen.origin.y + btn.frame.size.height/2; 

       [btn setCenter:CGPointMake(pointX, pointY)]; 
       } 


      CGPoint translation = [recognizer translationInView:self.view]; 
      btn.center = CGPointMake(btn.center.x + translation.x, 
          btn.center.y + translation.y); 

      [recognizer setTranslation:CGPointMake(0, 0) inView:self.view]; 


     } 



} 

できるだけ早くこの問題を解決してください。..

+0

のに役立ちますか?それは何ですか? 'UIButton'と' UIScrollView'は全く異なる2つのコントロールです。とにかく – NSNoob

+0

スクロールビューからボタンを削除して、サブビューとして目的のUIViewに追加するだけです。または、あなたの質問がこのプロセスのためにスムーズなアニメーションを作成する方法である場合は、タイトルを正確に記述するように質問を編集してください。 – NSNoob

答えて

0

を、Viewdidload

UIButton *button = [UIButton buttonWithType:UIButtonTypeCustom]; 
button.frame = CGRectMake(20, 20, 50, 30); 
[button addTarget:self action:@selector(imageMoved:withEvent:) forControlEvents:UIControlEventTouchDragInside]; 
[button addTarget:self action:@selector(imageMoved:withEvent:) forControlEvents:UIControlEventTouchDragOutside]; 
[button setBackgroundColor:[UIColor orangeColor]]; 


[self.view addSubview:button]; 

これを試します

アクションメソッドはli KE、

- (IBAction) imageMoved:(id) sender withEvent:(UIEvent *) event 
{ 
UIControl *control = sender; 

UITouch *t = [[event allTouches] anyObject]; 
CGPoint pPrev = [t previousLocationInView:control]; 
CGPoint p = [t locationInView:control]; 

CGPoint center = control.center; 
center.x += p.x - pPrev.x; 
center.y += p.y - pPrev.y; 
control.center = center; 
} 

ホープこれはあなたが `UIButton ScrollView`をドラッグします:)

関連する問題