美文网首页
图片折叠效果

图片折叠效果

作者: 年轻在于折腾 | 来源:发表于2015-09-03 23:10 被阅读437次
最终的效果,图片来自网络,

OC代码

#import"ViewController.h"

@interfaceViewController()

@property(weak,nonatomic)IBOutletUIImageView*topView;

@property(weak,nonatomic)IBOutletUIImageView*bottomView;

@property(weak,nonatomic)IBOutletUIView*dragView;

@property(nonatomic,weak)CAGradientLayer*layer;

@end

@implementationViewController

- (void)viewDidLoad {

[superviewDidLoad];

//先让上部分View显示图片上部分内容

// 0~1

_topView.layer.contentsRect=CGRectMake(0,0,1,0.5);

//设置锚点

_topView.layer.anchorPoint=CGPointMake(0.5,1);

//设置下部分显示内容

_bottomView.layer.contentsRect=CGRectMake(0,0.5,1,0.5);

_bottomView.layer.anchorPoint=CGPointMake(0.5,0);

//添加拖动手势

UIPanGestureRecognizer*pan = [[UIPanGestureRecognizeralloc]initWithTarget:selfaction:@selector(pan:)];

[_dragViewaddGestureRecognizer:pan];

//阴影效果,添加到底部

CAGradientLayer*layer = [CAGradientLayerlayer];

_layer= layer;

layer.frame=_bottomView.bounds;

//设置渐变颜色

layer.colors=@[(id)[UIColorclearColor].CGColor,(id)[UIColorblackColor].CGColor];

layer.opacity=0;

//    //设置渐变的方向

//

layer.startPoint = CGPointMake(0, 0);

//

layer.endPoint = CGPointMake(1, 0);

//

//    //设置颜色渐变的开始位置

//

layer.locations = @[@0.5];

[_bottomView.layeraddSublayer:layer];

}

//只要手指在拖动的View移动的时候就会调用

- (void)pan:(UIPanGestureRecognizer*)pan

{

//获取手势偏移量

CGPointtransP =  [pantranslationInView:_dragView];

//计算旋转角度

CGFloatangle = -transP.y/200.0*M_PI;

//增加立体感

CATransform3Dtransform =CATransform3DIdentity;

//

d:人的眼睛和屏幕的垂直距离

CGFloatd =300;

//设置形变的m34就可以增加立体感,立体感(近大远小)

transform.m34= -1/ d;

//秒速形变的旋转的度数

transform =CATransform3DRotate(transform,angle,1,0,0);

//开始旋转

_topView.layer.transform= transform;

//设置阴影的透明度

CGFloatopacity = transP.y/200;

_layer.opacity= opacity;

if(pan.state==UIGestureRecognizerStateEnded) {

//还原

// Damping:值越小,弹簧效果越明显

// options:秒速动画执行过程,匀速,快入快出

[UIViewanimateWithDuration:1delay:0usingSpringWithDamping:0.2initialSpringVelocity:1options:UIViewAnimationOptionCurveEaseInOutanimations:^{

_topView.layer.transform=CATransform3DIdentity;

}completion:^(BOOLfinished) {

}];

//弹簧效果

//上部分形变清空

//阴影透明

_layer.opacity=0;

}

}

@end

相关文章

  • iOS - 图片实现多层折叠效果

    iOS - 图片实现多层折叠效果 iOS - 图片实现多层折叠效果

  • 图片折叠效果

    OC代码 #import"ViewController.h" @interfaceViewController()...

  • 图片折叠效果

    绕着x轴转动 上半部分旋转,下半部分不动 一张图片旋转的效果.layer.transform MakeRotati...

  • 图片折叠效果

    图片折叠效果 1.如何制作图片折叠效果? 把一张图片分成两部分显示,上面一部分,下面一部分,折叠上面部分的内容。 ...

  • 自定义View示例-05 仿红板报翻页效果

    1.效果图 2.思路分析 2.1 绘制图片 2.2 绘制图片折叠效果 2.3 绘制图片旋转折叠效果 2.4 添加动...

  • 核心绘图实战笔记

    图片折叠效果 1.如何制作图片折叠效果? `把一张图片分成两部分显示,上面一部分,下面一部分,折叠上面部分的内容。...

  • iOS 图片折叠效果

    原理: 1、创建工程-打开Main.storyboard-拖入两个ImageView . 调整位置 .设置图片 2...

  • iOS - 图片实现多层折叠效果

    序 在网上能找到挺多图片折叠效果的教程,但大多数是一层折叠,在他们的教程的基础上,我试着实现了一下多层折叠的效果。...

  • Swift 2.0 封装图片折叠效果

    用Swift封装图片折叠效果boyXiong 谈到封装,那么就要从使用者的角度出发,提供外界使用的方法 1.新建一...

  • Swift Demo

    *1> 简单实现列表折叠效果 * 2. 图片的放大缩小,移动 * 3. 购买详情动画

网友评论

      本文标题:图片折叠效果

      本文链接:https://www.haomeiwen.com/subject/mamlcttx.html