2012-02-06 31 views
0

我想製作一個滑動按鈕,因此當用戶從右向左滑動按鈕時,按鈕也會從右向左繪製,最後它會推動另一個視圖,任何人都可以提供示例代碼它。製作一個滑動按鈕

+3

如果你接受你的問題的正確答案,人們會更傾向於幫助你。此外,諸如「我想要這樣做,給我代碼」等問題通常不會在SO上面張開雙臂。這裏有一篇關於iOS中的手勢識別器的好文章,以幫助您入門:http://iphonedevelopertips.com/event-handling/gestures-recognizers-tap-pinchzoom-rotate-swipe-pan-long-press.html – bschultz 2012-02-06 20:21:53

+0

你不知道,你點擊你問題最佳答案旁邊的複選標記。它會變成綠色,讓你和其他人知道這是最好的答案。答案者獲得聲望點,而且你也得到了一些分數。點擊你自己的名字,向下滾動查看你以前的問題,其中一些問題有相當不錯的答案! – 2012-02-06 20:28:50

+0

謝謝你們兩位 – Jprat 2012-02-06 20:35:07

回答

0
// make button 

UIButton*btn = [UIButton buttonWithType:UIButtonTypeRoundedRect]; 
[btn setFrame:CGRectMake(50, 50, 50, 50)]; 
[btn addTarget:self action:@selector(wasDragged:withEvent:) 
       forControlEvents:UIControlEventTouchDragInside]; 
[self.view addSubview:btn]; 


// here swipe buttons 


- (void)wasDragged:(UIButton *)button withEvent:(UIEvent *)event 
{ 
    // get the touch 
    UITouch *touch = [[event touchesForView:button] anyObject]; 

    // get delta 
    CGPoint previousLocation = [touch previousLocationInView:button]; 
    CGPoint location = [touch locationInView:button]; 
    CGFloat delta_x = location.x - previousLocation.x; 
    CGFloat delta_y = location.y - previousLocation.y; 

    // move button 
    CGPoint moveBtnCenter = CGPointMake(button.center.x + delta_x, 
             button.center.y + delta_y); 
    button.center = moveBtnCenter; 

    NSArray* allSubViews = [self.view subviews]; 
    for (UIView*subView in allSubViews) 
    { 
     if ([subView isKindOfClass:[UIButton class]]) 
     { 
      CGPoint subViewCenter = subView.center; 
      if (CGPointEqualToPoint(moveBtnCenter, subViewCenter)) 
      { 
       subView.center = previousLocation; 
      } 
     } 
    } 
}