翻页效果

翻页效果

 

效果

 

说明

修正以前源码的不妥之处。

 

源码

https://github.com/YouXianMing/Animations

//
//  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

细节

 

时间: 2024-09-22 03:48:14

翻页效果的相关文章

CSS翻页效果,鼠标放上时变化,无需JS

网页制作Webjx文章简介:!DOCTYPE html PUBLIC -//W3C//DTD XHTML 1.0 Transitional//EN http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtdhtml xmlns=http://www.w3.org/1999/xhtmlheadmeta http-equiv=Content-Type content=text/html; charset=gb2312 /titleDIV CSS实例

Flash电子书鼠标拖拽翻页效果原理

翻页|鼠标 最近要做些电子书,本来准备去网上买现成的翻页效果的组件,但一看报价吓一跳,而且执行效率也不高,一个叫AsFlipPage4.0的组件CPU占用率高居70%,喊价1000RMB,真是黑心商人.下载了几个开源的程序自己也看不懂.于是一咬牙自己做了一个,并放上源程序.过两星期再把变量接口做好,免费发布. 设置遮罩和阴影之后的最终品: 主要原理: 将电子书分为3个内容层,叠放顺序如图.第一层为当前页面层,是现在正在显示的页面:第二层是随鼠标拖拽时卷起的页角,第三层是当页角卷起时,露出下一页的

Android滑动效果高级篇(七) 华丽翻页效果

本示例介绍翻页效果,借鉴参考[何明桂的小窝]的博客,效果图如下: 感兴趣的朋友,可以查看[参考推荐],原博客把原理和实现,已经讲得很清楚了,在此不再重复 本示例源码下载如下:http://download.csdn.net/detail/sunboy_2050/4247971

ppt怎样制作翻页效果

  ppt制作翻页效果的方法: 首先我们打开PPT,准备好一个空白的文档 接下来绘制书页,自选图形--星与旗帜--波形,在空白页添加该图形之后,调整它的形状(控制黄色小图标拉到合适的形状).大小(不超过空白页的一半).背景色{米色:255 250 240}.边框{线型:3磅;颜色:橙色},如图: 接下来我们将绘制好的书页复制一份,拉到左边,然后180度旋转,这样我们就完成了序和第一页的绘制,同样的方法,我们将第三页和第四页也绘制好,并设置好叠放次序. 为了美观,我们绘制一下书的中轴线,首先我们在

ajax翻页效果模仿yii框架自己写的

 这篇文章主要介绍了自己写的ajax翻页效果,模仿yii框架,需要的朋友可以参考下  代码如下: <!DOCTYPE html>  <html>  <head>  <title>ajax分页</title>  <script src="http://code.jquery.com/jquery-1.11.0.min.js"></script>  <script>  function load

jquery实现图片翻页效果

 jquery实现图片翻页效果,大家可以使用下面的方法    代码如下: $(function($){       $.fn.changeList = function(options){           var defaults = {                       tag : 'li', // tab name                       subName : '.utilTabSub', // sub class name                  

android acitvity 翻页效果

问题描述 如何实现类似主界面上的翻页效果,手指拖动,界面会根据手指拖动的坐标左右移动,不是单纯的左进,左出,是和拖动坐标对应的左右推进,请问如何实现啊,用什么函数,谢谢! 问题补充:dongya1987 写道 解决方案 你一定要清楚的说明你的问题是什么.我看你的描述是实现主界面上的拖动效果,是不是指Launcher桌面上拖动到其他屏幕?如果是的话,你稍微看一下Launcher代码就知道,那不是切换了activity,而是一个activity的布局占了好几屏.这里没有涉及到activity之间的切

实现翻页效果

实现翻页效果   简单翻页: // // RootViewController.m // // Copyright (c) 2014年 Y.X. All rights reserved. // #import "RootViewController.h" @interface RootViewController () @property (nonatomic, strong) CALayer *layer; @end @implementation RootViewControlle

阅读软件的翻页效果有多重要

虽然我现在静下心来阅读的时间很少,但是阅读软件依然是我的智能手机中必备的软件.而自从 Android 2.x 时代以来,我一直使用的阅读软件是 Aldiko,理由则是界面不错.操作直观.支持读取 SD 卡,而且能够满足我时断时续的阅读过程.而在 Android 4.0 时代,可能它的界面已经显得落后,但是它依然存在我的手机之中,若要问理由,那是因为我仍然没有遇到更合适的应用来替代它. 虽然 Aldiko已经伴随了我这么长的时间,但其实我一直对它有着一些怨念,那就是,它没有翻页效果.而对于阅读中翻