iOS实现图片折叠效果
2020-03-25 12:06
931 查看
本文实例为大家分享了iOS实现图片折叠效果的具体代码,供大家参考,具体内容如下
效果图:
结构布局:拖两个UIImageView到控制器,设置相同的frame和图片,再拖一个大的UIImageView盖在上面,注意把大的imageView.userInteractionEnabled = YES;能够添加手势。
注意层次结构:
核心代码:
// // ViewController.m // 图片折叠 // // Created by llkj on 2017/8/31. // Copyright © 2017年 LayneCheung. All rights reserved. // #import "ViewController.h" @interface ViewController () @property (weak, nonatomic) IBOutlet UIImageView *topImageV; @property (weak, nonatomic) IBOutlet UIImageView *buttomImageV; @property (nonatomic, weak) CAGradientLayer *gradientL; @end @implementation ViewController - (void)viewDidLoad { [super viewDidLoad]; //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 = [CAGradientLayer layer]; gradidentL.frame = self.buttomImageV.bounds; gradidentL.opacity = 0; gradidentL.colors = @[(id)[UIColor clearColor].CGColor, (id)[UIColor blackColor].CGColor]; self.gradientL = gradidentL; [self.buttomImageV.layer addSublayer:gradidentL]; } //这里也可以手动给大的ImageView添加一个UIPanGestureRecognizer手势 - (IBAction)pan:(UIPanGestureRecognizer *)pan { //获取移动的偏移量 CGPoint transP = [pan translationInView:pan.view]; //让上部图片开始旋转 CGFloat angle = transP.y * M_PI / 200; //近大远小效果 CATransform3D transform = 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:弹性系数 [UIView animateWithDuration:0.5 delay:0 usingSpringWithDamping:0.5 initialSpringVelocity:0 options:UIViewAnimationOptionCurveLinear animations:^{ self.topImageV.layer.transform = CATransform3DIdentity; } completion:^(BOOL finished) { }]; } } @end
以上就是本文的全部内容,希望对大家的学习有所帮助
您可能感兴趣的文章:
相关文章推荐
- 基于iOS实现图片折叠效果
- iOS - 图片实现多层折叠效果
- iOS - 图片实现多层折叠效果
- IOS 图片折叠效果实现
- iOS图片模糊效果的实现方法
- iOS 点击图片放大效果的实现
- iOS开发-简单图片背景替换(实现抠图效果)
- iOS实现图片六边形阴影效果
- iOS实现图片高斯模糊效果
- iOS-图片折叠效果
- ios-day18-10(使用CAKeyframeAnimation实现图片的抖动效果)
- 使用viewpager嵌套实现上下左右滑动切换图片(IOS双向滚动翻页效果相同)
- iOS图片逐渐加载的效果实现
- iOS无限轮播图片的实现-仅仅用了三个UIImageView实现多图的轮播效果
- iOS图片倒影效果的2种实现
- iOS 实现类似安卓.9.png图片拉伸效果
- [IOS]对UITableView的简单封装,实现了下拉放大头部图片的效果
- 【iOS开发-9】UIImage和UIImageView属性介绍,实现图片动画,实现开始/停止按钮效果
- iOS 图片折叠效果
- iOS开发——UI进阶篇(十八)核心动画小例子,转盘(裁剪图片、自定义按钮、旋转)图片折叠、音量震动条、倒影、粒子效果