使用 OpenGL ES 2.0 渲染的 iBooks 风格 3D 翻转动画,封装在 UIStoryboardSegue 子类中。
动作演示(完整视频可以在 YouTube 上找到)
与 iBooks 和此 segue 类别的比较
GC3DFlipTransitionStyleSegue 需要 iOS 5.0 及以上版本。
将源代码添加到你的项目中(以及如果你想使用它的话,还要添加图像文件)。将你的目标链接到 QuartzCore.framework
、GLKit.framework
和 OpenGLES.framework
。
CocoaPods 支持:pod 'GC3DFlipTransitionStyleSegue'
如果你在一个非 ARC 项目中使用这个类,确保为实现文件添加 -fobjc-arc 编译器标志。
快速设置:只需将此类设置为自定义 segue,它就会立即工作。
要更改侧面的默认纹理,请更改以下宏
#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(和播客)应用。这是默认值。
这个属性禁用了光效。
@property (assign, nonatomic) BOOL disableLightEffect
讨论
禁用光效可以让动画模仿苹果的3D翻转过渡动画。这不会对性能产生影响。光效默认开启。要查看效果,请查看截图。
这个属性禁用了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;
}
}
本代码在zlib许可协议的条款和条件下分发。
版权所有 (c) 2013 Glenn Chiu
本软件按“原样”提供,不提供任何明示或暗示的保证。在任何情况下,作者都不会因使用本软件而承担任何损害赔偿责任。
任何人只要遵守以下限制,都可以为本软件的任何目的使用此软件,包括商业应用,并自由地修改和重新分发
本软件的来源不得被错误表示;你不能声称是你编写了原始软件。如果你在本软件中使用了某产品,产品文档中的致谢会成为感激之举,但不是必须的。
修改后的源代码版本必须明确标注为修改版,并且不得将其错误地表示为原始软件。
本通知不得从任何源代码分发中移除或修改。