博客
关于我
强烈建议你试试无所不能的chatGPT,快点击我
翻页效果
阅读量:5306 次
发布时间:2019-06-14

本文共 2309 字,大约阅读时间需要 7 分钟。

翻页效果

 

效果

 

说明

修正以前的不妥之处。

 

源码

////  PageFlipEffectController.m//  Animations////  Created by YouXianMing on 16/1/6.//  Copyright © 2016年 YouXianMing. All rights reserved.//#import "PageFlipEffectController.h"#import "Math.h"#import "WxHxD.h"#import "CALayer+SetRect.h"#import "UIView+SetRect.h"@interface PageFlipEffectController ()@property (nonatomic, strong) CALayer *layer;@property (nonatomic, strong) Math    *math;@end@implementation PageFlipEffectController- (void)setup {    [super setup];        // layer    _layer               = [CALayer layer];    _layer.anchorPoint   = CGPointMake(1.f, 0.5f);    _layer.frame         = CGRectMake(0, 0, Width / 2.f, 300);    _layer.x             = 0;    _layer.position      = CGPointMake(Width / 2.f, 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.transform = CATransform3DMakeRotation([Math radianFromDegree:0], 0.0, 1.0, 0.0);    [self.contentView.layer addSublayer:_layer];        // 一元一次方程求解    self.math = [Math mathOnceLinearEquationWithPointA:MATHPointMake(0, 0) PointB:MATHPointMake(Width, 180)];        // 手势    UIPanGestureRecognizer *pan = [[UIPanGestureRecognizer alloc] initWithTarget:self action:@selector(handlePan:)];    [self.view addGestureRecognizer:pan];}- (void)handlePan:(UIPanGestureRecognizer *)sender {        CGPoint curPoint = [sender locationInView:self.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;        if (x >= Width / 2.f) {                [CATransaction setDisableActions:YES];        _layer.contents = (__bridge id)([UIImage imageNamed:@"pic_2"].CGImage);            } else {                [CATransaction setDisableActions:YES];        _layer.contents = (__bridge id)([UIImage imageNamed:@"pic_1"].CGImage);    }}@end

 

细节

 

转载于:https://www.cnblogs.com/YouXianMing/p/5107361.html

你可能感兴趣的文章
快来熟练使用 Mac 编程
查看>>
Node.js 入门:Express + Mongoose 基础使用
查看>>
一步步教你轻松学奇异值分解SVD降维算法
查看>>
使用pager进行分页
查看>>
UVA - 1592 Database
查看>>
Fine Uploader文件上传组件
查看>>
javascript中的传递参数
查看>>
objective-c overview(二)
查看>>
python查询mangodb
查看>>
consonant combination
查看>>
驱动的本质
查看>>
Swift的高级分享 - Swift中的逻辑控制器
查看>>
Swagger简单介绍
查看>>
Python数据分析入门案例
查看>>
vue-devtools 获取到 vuex store 和 Vue 实例的?
查看>>
Linux 中【./】和【/】和【.】之间有什么区别?
查看>>
内存地址对齐
查看>>
看门狗 (监控芯片)
查看>>
css背景样式
查看>>
JavaScript介绍
查看>>