Path 2.0 大部分效果分享

实现了大部分Path 2.0 特效
注(iOS5 only),文章最后有源码下载
tableview添加手势检测代码

 

- ( void )awakeFromNib{
  UIPanGestureRecognizer* recognizer;
     // handleSwipeFrom 是偵測到手势,所要呼叫的方法
     recognizer = [[UIPanGestureRecognizer alloc] initWithTarget: self action: @selector (handlePanFrom:)];
     // 不同的 Recognizer 有不同的实体变数
     // 例如 SwipeGesture 可以指定方向
     // 而 TapGesture 則可以指定次數
     //recognizer.direction = UISwipeGestureRecognizerDirectionLeft | UISwipeGestureRecognizerDirectionRight;
     recognizer.delegate = self ;
     [_tableView addGestureRecognizer:recognizer];
     [recognizer release];
}
 
- ( BOOL )gestureRecognizerShouldBegin:(UIPanGestureRecognizer *)gestureRecognizer
{
     CGPoint translation = [gestureRecognizer translationInView:[[UIApplication sharedApplication] keyWindow]];
     
     // Check for horizontal gesture
     if (sqrt(translation.x * translation.x) / sqrt(translation.y * translation.y) > 1)
     {
         return YES ;
     }
     
     return NO ;
}
 
- ( void )handlePanFrom:(UIPanGestureRecognizer*)recognizer {
 
     if (recognizer.state == UIGestureRecognizerStateBegan) {
         ;
     }
     else if (recognizer.state == UIGestureRecognizerStateChanged) {
         CGFloat xOffSet = [recognizer translationInView:[[UIApplication sharedApplication] keyWindow]].x;
         
         AppDelegate *appDelegate = (AppDelegate *)[[UIApplication sharedApplication] delegate];
         if (xOffSet < 0) {
             [appDelegate makeRightViewVisible];
         }
         else if (xOffSet > 0) {
             [appDelegate makeLeftViewVisible];
         }
         
         self .navigationController.view.frame = CGRectMake(xOffSet,
                                                           self .navigationController.view.frame.origin.y,
                                                           self .navigationController.view.frame.size.width,
                                                           self .navigationController.view.frame.size.height);
     }
     else if (recognizer.state == UIGestureRecognizerStateEnded) {
         if ( self .navigationController.view.frame.origin.x < -kTriggerOffSet)
             [ self moveToLeftSide];
         // animate to right side
         else if ( self .navigationController.view.frame.origin.x > kTriggerOffSet)
             [ self moveToRightSide];
         // reset
         else
             [ self restoreViewLocation];
 
     }
}

 
 
源码下载:
Path2DemoPrj

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值