怎么在iOS中实现一个图片折叠效果
这篇文章给大家介绍怎么在iOS中实现一个图片折叠效果,内容非常详细,感兴趣的小伙伴们可以参考借鉴,希望对大家能有所帮助。

创新互联公司专注为客户提供全方位的互联网综合服务,包含不限于网站设计制作、成都做网站、平坝网络推广、重庆小程序开发、平坝网络营销、平坝企业策划、平坝品牌公关、搜索引擎seo、人物专访、企业宣传片、企业代运营等,从售前售中售后,我们都将竭诚为您服务,您的肯定,是我们最大的嘉奖;创新互联公司为所有大学生创业者提供平坝建站搭建服务,24小时服务热线:028-86922220,官方网址:www.cdcxhl.com
结构布局:拖两个UIImageView到控制器,设置相同的frame和图片,再拖一个大的UIImageView盖在上面,注意把大的imageView.userInteractionEnabled = YES;能够添加手势。
核心代码:
#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中实现一个图片折叠效果
网页网址:http://www.jxjierui.cn/article/jijogi.html


咨询
建站咨询
