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(发邮件时,请将#更换为@)进行举报,并提供相关证据,一经查实,本站将立刻删除涉嫌侵权内容。