GC3DFlipTransitionStyleSegue 1.0.0

GC3DFlipTransitionStyleSegue 1.0.0

测试测试过
Lang语言 Obj-CObjective C
许可证 zlib
发布最新发布2014年12月

未声明 维护。



  • 作者:
  • Glenn Chiu

使用 OpenGL ES 2.0 渲染的 iBooks 风格 3D 翻转动画,封装在 UIStoryboardSegue 子类中。

动作演示(完整视频可以在 YouTube 上找到)

image

与 iBooks 和此 segue 类别的比较

image

特性 / 设计

  • 使用 OpenGL ES 渲染代替 Core Animation 以实现高性能(60 fps)和着色器效果。
  • 使用 GLKit 大幅减少 OpenGL ES 2.0 代码(编写和维护)的数量。
  • 灵感来源于 Apple 的 3D 翻转视图控制器转换动画,如 iBooks、iTunes U 和 Podcasts 等iOS应用中找到的。
  • 支持不同的屏幕尺寸和屏幕方向。
  • 快速简便的设置。请查看 安装

需求

GC3DFlipTransitionStyleSegue 需要 iOS 5.0 及以上版本。

安装

将源代码添加到你的项目中(以及如果你想使用它的话,还要添加图像文件)。将你的目标链接到 QuartzCore.frameworkGLKit.frameworkOpenGLES.framework

CocoaPods 支持:pod 'GC3DFlipTransitionStyleSegue'

如果你在一个非 ARC 项目中使用这个类,确保为实现文件添加 -fobjc-arc 编译器标志。

快速设置:只需将此类设置为自定义 segue,它就会立即工作。

image

自定义

要更改侧面的默认纹理,请更改以下宏

#define IMAGE_NAME  @"wood"
#define IMAGE_TYPE  @"jpg"

头文件中暴露了一些自定义属性

- 深度

此属性设置 3D 对象的深度(或厚度)。

@property (assign, nonatomic) float depth

讨论

深度值不能为 0(零),因为这会设置默认值 0.5(《kGC3DFlipTransitionStyle_iBooks》)。对于非常小的深度值,请使用《kGC3DFlipTransitionStyle_Horizontal》。

头文件中设置了三个常量键

extern float kGC3DFlipTransitionStyle_Horizontal

非常小的深度,比如 Apple 的转换风格动画《UIModalTransitionStyleFlipHorizontal》。要查看它是什么样的,请查看 截图

extern float kGC3DFlipTransitionStyle_iTunesU

类似于 iTunes U 应用(比 iBooks 小)设置的深度值。

extern float kGC3DFlipTransitionStyle_iBooks

部门值设置类似于iBooks(和播客)应用。这是默认值。

- disableLightEffect

这个属性禁用了光效。

@property (assign, nonatomic) BOOL disableLightEffect

讨论

禁用光效可以让动画模仿苹果的3D翻转过渡动画。这不会对性能产生影响。光效默认开启。要查看效果,请查看截图

- disableMultisampling

这个属性禁用了4x多采样抗锯齿(4x MSAA)。

@property (assign, nonatomic) BOOL disableMultisampling

讨论

多采样可以提高图像质量。默认开启。对于旧设备,禁用它可以稍微提高性能。

示例

以下是如何设置segue属性的示例

- (void)prepareForSegue:(UIStoryboardSegue *)segue sender:(id)sender
{
    if ([segue isKindOfClass:[GC3DFlipTransitionStyleSegue class]])
    {
        GC3DFlipTransitionStyleSegue *flipSegue = (GC3DFlipTransitionStyleSegue *)segue;
        flipSegue.disableLightEffect = YES;
        flipSegue.disableMultisampling = YES;
        flipSegue.depth = kGC3DFlipTransitionStyle_iTunesU;
    }
}

截图

image

待办事项

  • 添加选项以使视图控制器翻转方向与苹果播客应用相反。
  • 优化iPad上的快照性能。

许可协议

本代码在zlib许可协议的条款和条件下分发。

版权所有 (c) 2013 Glenn Chiu

本软件按“原样”提供,不提供任何明示或暗示的保证。在任何情况下,作者都不会因使用本软件而承担任何损害赔偿责任。

任何人只要遵守以下限制,都可以为本软件的任何目的使用此软件,包括商业应用,并自由地修改和重新分发

  1. 本软件的来源不得被错误表示;你不能声称是你编写了原始软件。如果你在本软件中使用了某产品,产品文档中的致谢会成为感激之举,但不是必须的。

  2. 修改后的源代码版本必须明确标注为修改版,并且不得将其错误地表示为原始软件。

  3. 本通知不得从任何源代码分发中移除或修改。