iOS实现抽屉效果
本文实例为大家分享了iOS实现抽屉效果的具体代码,供大家参考,具体内容如下
抽屉效果:
#import"DragerViewController.h" #definescreenW[UIScreenmainScreen].bounds.size.width @interfaceDragerViewController() @property(nonatomic,weak)UIView*leftV; @property(nonatomic,weak)UIView*rightV; @property(nonatomic,weak)UIView*mainV; @end @implementationDragerViewController -(void)viewDidLoad{ [superviewDidLoad]; //添加子控件 [selfsetUp]; //添加手势 UIPanGestureRecognizer*pan=[[UIPanGestureRecognizeralloc]initWithTarget:selfaction:@selector(pan:)]; [self.mainVaddGestureRecognizer:pan]; //给控制器的View添加点按手势 UITapGestureRecognizer*tap=[[UITapGestureRecognizeralloc]initWithTarget:selfaction:@selector(tap)]; [self.viewaddGestureRecognizer:tap]; } -(void)tap{ //让MainV复位 [UIViewanimateWithDuration:0.5animations:^{ self.mainV.frame=self.view.bounds; }]; } #definetargetR275 #definetargetL-275 -(void)pan:(UIPanGestureRecognizer*)pan{ //获取偏移量 CGPointtransP=[pantranslationInView:self.mainV]; //为什么不使用transform,是因为我们还要去修改高度,使用transform,只能修改,x,y //self.mainV.transform=CGAffineTransformTranslate(self.mainV.transform,transP.x,0); self.mainV.frame=[selfframeWithOffsetX:transP.x]; //判断拖动的方向 if(self.mainV.frame.origin.x>0){ //向右 self.rightV.hidden=YES; }elseif(self.mainV.frame.origin.x<0){ //向左 self.rightV.hidden=NO; } //当手指松开时,做自动定位. CGFloattarget=0; if(pan.state==UIGestureRecognizerStateEnded){ if(self.mainV.frame.origin.x>screenW*0.5){ //1判断在右侧 //当前View的x有没有大于屏幕宽度的一半,大于就是在右侧 target=targetR; }elseif(CGRectGetMaxX(self.mainV.frame)以上就是本文的全部内容,希望对大家的学习有所帮助,也希望大家多多支持毛票票。
声明:本文内容来源于网络,版权归原作者所有,内容由互联网用户自发贡献自行上传,本网站不拥有所有权,未作人工编辑处理,也不承担相关法律责任。如果您发现有涉嫌版权的内容,欢迎发送邮件至:czq8825#qq.com(发邮件时,请将#更换为@)进行举报,并提供相关证据,一经查实,本站将立刻删除涉嫌侵权内容。