iOS翻书动画

作者: K__M | 来源:发表于2016-09-12 18:12 被阅读145次

// 翻书效果

UIImage *image = [UIImage imageNamed:@"pic_1"];

CGSize size = [Math resetFromSize:image.size withFixedWidth:self.view.width/2.f];

// layer

_layer = [CALayer layer];

_layer.anchorPoint = CGPointMake(1.f, 0.5f);

_layer.frame = CGRectMake(0, 0, self.view.width/2, size.height);

_layer.position = CGPointMake(self.view.width/2, self.contentView.middleY);

_layer.contents = (__bridge id)([UIImage imageNamed:@"pic_1"].CGImage);

_layer.borderColor = [UIColor blackColor].CGColor;

_layer.borderWidth = 4.f;

_layer.masksToBounds = YES;

_layer.allowsEdgeAntialiasing = YES; // 抗锯齿

_layer.transform = CATransform3DMakeRotation([Math radianFromDegree:0], 0.0, 1.0, 00);

//    _layer.transform = catransform3d

[self.contentView.layer addSublayer:_layer];

// 一元一次方程

self.math = [Math mathOnceLinearEquationWithPointA:MATHPointMake(0,0) PointB:MATHPointMake(self.view.width,180)];

//  手势

UIPanGestureRecognizer *pan = [[UIPanGestureRecognizer alloc]initWithTarget:self action:@selector(handlePan:)];

[self.view addGestureRecognizer:pan];

- (void)handlePan:(UIPanGestureRecognizer *)sender {

CGPoint curPoint = [sender locationInView:sender.view];

CGFloat x = curPoint.x;

// 初始化3D变换,获取默认值

CATransform3D perspectiveTransform = CATransform3DIdentity;

//透视

perspectiveTransform.m34 = -1.0/2000.0;

// 空间旋转

perspectiveTransform = CATransform3DRotate(perspectiveTransform, [Math radianFromDegree:x * self.math.k], 0, 1, 0);

[CATransaction setDisableActions:YES];

_layer.transform = perspectiveTransform;

_layer.contents = (__bridge id)([UIImage imageNamed:x >= self.view.width/2.0f ? @"pic_2" : @"pic_1"].CGImage);

if (sender.state == UIGestureRecognizerStateEnded) {

// 初始化3D变换,获取默认值

CATransform3D perspectiveTransform = CATransform3DIdentity;

// 透视

perspectiveTransform.m34 = -1.0/2000.0;

// 空间旋转

perspectiveTransform = CATransform3DRotate(perspectiveTransform, [Math radianFromDegree:x >= self.view.width/2.0f ? 180 : 0], 0, 1, 0);

[CATransaction setDisableActions:NO];

_layer.transform = perspectiveTransform;

}

}最后demo地址翻书效果 

相关文章

  • iOS翻书动画

    // 翻书效果UIImage *image = [UIImage imageNamed:@"pic_1"];CGS...

  • 翻书动画

  • iOS自定义翻书动画

    最近项目中做了一个翻书动画的需求,包括点击书本放大、书本翻开、书本合上以及缩小回归原位等一系列动画。参考了别人的实...

  • ios动画

    ios动画 ios动画2 ios动画3

  • iOS动画

    iOS动画-从UIView动画说起iOS动画-Transform和KeyFrame动画iOS动画-layout动画...

  • 《iOS动画》读书笔记·内容层动画

    《iOS动画》读书笔记·前序《iOS动画》读书笔记·显示层动画《iOS动画》读书笔记·内容层动画《iOS动画》读书...

  • 《iOS动画》读书笔记·显示层动画

    《iOS动画》读书笔记·前序《iOS动画》读书笔记·显示层动画《iOS动画》读书笔记·内容层动画《iOS动画》读书...

  • 《iOS动画》读书笔记·前序

    《iOS动画》读书笔记·前序《iOS动画》读书笔记·显示层动画《iOS动画》读书笔记·内容层动画《iOS动画》读书...

  • 《iOS动画》读书笔记·转场动画

    《iOS动画》读书笔记·前序《iOS动画》读书笔记·显示层动画《iOS动画》读书笔记·内容层动画《iOS动画》读书...

  • iOS - 转场动画

    参考文章:iOS 转场动画一张图看懂 iOS 转场动画iOS自定义转场动画 iOS 转场动画探究(一)

网友评论

    本文标题:iOS翻书动画

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