IOS开发——自定义手势(拖动UIPanGestureRecognizer)
2014-04-30 16:22
501 查看
IOS开发——自定义手势(拖动UIPanGestureRecognizer)
代码下载地址:http://download.csdn.net/detail/u012881779/7277015
代码下载地址:http://download.csdn.net/detail/u012881779/7277015
<span style="font-size:14px;">#import "HomePage.h" @interface HomePage () @property (strong, nonatomic) UIScrollView *gBootSV;//底层适配SV @property (nonatomic) float gColumnWidth;//栏目宽度 @property (nonatomic) float gFloat;//改变之前View的X坐标 @property (strong, nonatomic) UIPanGestureRecognizer* gPanRecognizer;//拖动手势 @end @implementation HomePage - (void)viewDidLoad { [super viewDidLoad]; self.gColumnWidth = 170; //拖动手势 self.gPanRecognizer = [[UIPanGestureRecognizer alloc] initWithTarget:self action:@selector(cPanHome:)]; [self.view addGestureRecognizer:self.gPanRecognizer]; } //拖动手势 -(void)cPanHome:(UIPanGestureRecognizer *)rec{ //手势开始 if (rec.state == UIGestureRecognizerStateBegan) { self.gFloat = self.view.frame.origin.x; NSLog(@"dddd_%f",self.gFloat); } CGPoint point = [rec translationInView:self.view]; NSLog(@"fff_%f",point.x); //限定范围 if((self.view.frame.origin.x < self.gColumnWidth&&self.view.frame.origin.x>-(320-self.gColumnWidth))||self.view.frame.origin.x == self.gColumnWidth||self.view.frame.origin.x==-(320-self.gColumnWidth)){ //手势进行 if (rec.state == UIGestureRecognizerStateChanged) { if((point.x < self.gColumnWidth&&point.x>-(320-self.gColumnWidth))||point.x == self.gColumnWidth||point.x==-(320-self.gColumnWidth)){ [self.view setFrame:CGRectMake(self.gFloat+point.x, self.view.frame.origin.y, self.view.frame.size.width, self.view.frame.size.height)]; if(self.view.frame.origin.x > self.gColumnWidth){ [self.view setFrame:CGRectMake(self.gColumnWidth, self.view.frame.origin.y, self.view.frame.size.width, self.view.frame.size.height)]; }else if (self.view.frame.origin.x < -(320-self.gColumnWidth)){ [self.view setFrame:CGRectMake(-(320-self.gColumnWidth), self.view.frame.origin.y, self.view.frame.size.width, self.view.frame.size.height)]; } } } //手势结束 if (rec.state == UIGestureRecognizerStateEnded) { if(((self.view.frame.origin.x < self.gColumnWidth/2||self.view.frame.origin.x == self.gColumnWidth/2)&&self.view.frame.origin.x>0)||((self.view.frame.origin.x > -(320-self.gColumnWidth)/2||self.view.frame.origin.x == -(320-self.gColumnWidth)/2)&&self.view.frame.origin.x<0)){ [UIView animateWithDuration:0.2 animations:^{ [self.view setFrame:CGRectMake(0, self.view.frame.origin.y, self.view.frame.size.width, self.view.frame.size.height)]; } completion:^(BOOL finished){ UIButton *tempBut = (UIButton *)[self.view viewWithTag:1000]; tempBut.selected = YES; }]; }else{ if(self.view.frame.origin.x > self.gColumnWidth/2&&self.view.frame.origin.x<self.gColumnWidth){ [UIView animateWithDuration:0.2 animations:^{ [self.view setFrame:CGRectMake(self.gColumnWidth, self.view.frame.origin.y, self.view.frame.size.width, self.view.frame.size.height)]; } completion:^(BOOL finished){}]; }else if(self.view.frame.origin.x < -(320-self.gColumnWidth)/2&&self.view.frame.origin.x>-(320-self.gColumnWidth)){ [UIView animateWithDuration:0.2 animations:^{ [self.view setFrame:CGRectMake(-(320-self.gColumnWidth), self.view.frame.origin.y, self.view.frame.size.width, self.view.frame.size.height)]; } completion:^(BOOL finished){}]; } UIButton *tempBut = (UIButton *)[self.view viewWithTag:1000]; tempBut.selected = NO; } } } }</span>
相关文章推荐
- iOS手势识别的详细使用:拖动、缩放、旋转、点击、手势依赖、自定义手势
- iOS手势(拖动,缩放,旋转,点击,手势依赖,自定义手势)
- iOS手势识别的详细使用(拖动,缩放,旋转,点击,手势依赖,自定义手势)
- iOS手势识别的详细使用(拖动,缩放,旋转,点击,手势依赖,自定义手势)
- iOS 手势操作:拖动、捏合、旋转、点按、长按、轻扫、自定义
- iOS手势操作,拖动,轻击,捏合,旋转,长按,自定义(http://www.cnblogs.com/huangjianwu/p/4675648.html)
- iOS手势识别的详细使用(拖动,缩放,旋转,点击,手势依赖,自定义手势)
- iOS手势识别的详细使用(拖动,缩放,旋转,点击,手势依赖,自定义手势)
- iOS手势识别的详细使用(拖动,缩放,旋转,点击,手势依赖,自定义手势)
- iOS手势识别的详细使用:拖动、缩放、旋转、点击、手势依赖、自定义手势
- iOS--------手势识别的详细使用:拖动、缩放、旋转、点击、手势依赖、自定义手势
- iOS手势识别使用(拖动,缩放,旋转,点击,长按,滑动,自定义手势)等等
- iOS 手势操作:拖动、捏合、旋转、点按、长按、轻扫、自定义
- IOS 开发笔记——自定义导航栏返回键后如何恢复系统默认返回手势
- iOS手势识别的详细使用(拖动,缩放,旋转,点击,手势依赖,自定义手势)
- iOS开发笔记--iphone练习之手势识别(双击、捏、旋转、拖动、划动、长按)UITapGestureRecognize
- iOS手势识别的详细使用(拖动,缩放,旋转,点击,手势依赖,自定义手势)
- iOS手势识别的详细使用(拖动,缩放,旋转,点击,手势依赖,自定义手势)
- iOS手势识别的详细使用(拖动,缩放,旋转,点击,手势依赖,自定义手势)
- 【iOS】手势识别的详细使用:拖动、缩放、旋转、点击、手势依赖、自定义手势