iOS实现图片折叠效果
本文实例为大家分享了iOS实现图片折叠效果的具体代码,供大家参考,具体内容如下
效果图:
结构布局:拖两个UIImageView到控制器,设置相同的frame和图片,再拖一个大的UIImageView盖在上面,注意把大的imageView.userInteractionEnabled=YES;能够添加手势。
注意层次结构:
核心代码:
// //ViewController.m //图片折叠 // //Createdbyllkjon2017/8/31. //Copyright©2017年LayneCheung.Allrightsreserved. // #import"ViewController.h" @interfaceViewController() @property(weak,nonatomic)IBOutletUIImageView*topImageV; @property(weak,nonatomic)IBOutletUIImageView*buttomImageV; @property(nonatomic,weak)CAGradientLayer*gradientL; @end @implementationViewController -(void)viewDidLoad{ [superviewDidLoad]; //1.让上不图片只显示上半部分 self.topImageV.layer.contentsRect=CGRectMake(0,0,1,0.5); //2.让下不图片只显示下半部分 self.buttomImageV.layer.contentsRect=CGRectMake(0,0.5,1,0.5); self.topImageV.layer.anchorPoint=CGPointMake(0.5,1); self.buttomImageV.layer.anchorPoint=CGPointMake(0.5,0); //设置渐变层 CAGradientLayer*gradidentL=[CAGradientLayerlayer]; gradidentL.frame=self.buttomImageV.bounds; gradidentL.opacity=0; gradidentL.colors=@[(id)[UIColorclearColor].CGColor,(id)[UIColorblackColor].CGColor]; self.gradientL=gradidentL; [self.buttomImageV.layeraddSublayer:gradidentL]; } //这里也可以手动给大的ImageView添加一个UIPanGestureRecognizer手势 -(IBAction)pan:(UIPanGestureRecognizer*)pan{ //获取移动的偏移量 CGPointtransP=[pantranslationInView:pan.view]; //让上部图片开始旋转 CGFloatangle=transP.y*M_PI/200; //近大远小效果 CATransform3Dtransform=CATransform3DIdentity; //眼睛离屏幕的距离(透视效果) transform.m34=-1/300.0; self.gradientL.opacity=transP.y*1/200.0; self.topImageV.layer.transform=CATransform3DRotate(transform,-angle,1,0,0); if(pan.state==UIGestureRecognizerStateEnded){ self.gradientL.opacity=0; //上部图片复位 //usingSpringWithDamping:弹性系数 [UIViewanimateWithDuration:0.5delay:0usingSpringWithDamping:0.5initialSpringVelocity:0options:UIViewAnimationOptionCurveLinearanimations:^{ self.topImageV.layer.transform=CATransform3DIdentity; }completion:^(BOOLfinished){ }]; } } @end
以上就是本文的全部内容,希望对大家的学习有所帮助,也希望大家多多支持毛票票。
声明:本文内容来源于网络,版权归原作者所有,内容由互联网用户自发贡献自行上传,本网站不拥有所有权,未作人工编辑处理,也不承担相关法律责任。如果您发现有涉嫌版权的内容,欢迎发送邮件至:czq8825#qq.com(发邮件时,请将#更换为@)进行举报,并提供相关证据,一经查实,本站将立刻删除涉嫌侵权内容。