BCGenieEffect 1.1

BCGenieEffect 1.1

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

Bartosz Ciechanowski 维护。



  • Bartosz Ciechanowski

在您 iOS 应用中添加 OSX 风格的控制按钮效果。

功能

  • UIView 类别
  • 自定义目标/起始矩形及其边缘
  • 基于 CoreAnimation

如何使用

进入效果

CGRect endRect = CGRectMake(30, 40, 50, 60);
[view genieInTransitionWithDuration:0.7 
                    destinationRect:endRect 
                    destinationEdge:BCRectEdgeTop 
                         completion:^{
                            NSLog(@"I'm done!");
                          }];

退出效果

CGRect startRect = CGRectMake(30, 40, 50, 60);
[view genieOutTransitionWithDuration:0.7 
                           startRect:startRect
                           startEdge:BCRectEdgeLeft 
                          completion:nil];

参数

同时指定 endRectstartRect 的坐标,坐标是视图父视图中的。

edge 参数是四个矩形边缘之一

  • BCRectEdgeTop
  • BCRectEdgeLeft
  • BCRectEdgeBottom
  • BCRectEdgeRight

位置限制

由于 BCGenieEffect 的工作方式,动画视图与目标矩形之间有一些空间限制。以下例子中,我们假设目标边缘是 BCRectEdgeTop

正确放置

让我们从动画将有效的工作情况下开始。如您所见,动画视图将遵循一个清晰且合乎逻辑的路径,它将容易地滑进目标矩形。

不建议的放置

虽然这个例子看起来可能相似,但您应该注意到动画视图的底部边缘 位于 目标矩形的顶部边缘 之下。虽然在 OS X 中窗口会向上移动,使其底部边缘高于托盘,但我已决定不实现这种自动校正。BCGenieEffect 将仍然执行动画,但结果可能会有故障。建议您决定故障不是很重要,或者手动移动/动画化视图以避免问题。当出现不建议的放置时,BCGenieEffect 将在控制台输出警告 NSLog

Genie Effect Warning: The bottom edge of animated view overlaps top edge of destination rect. Glitches may occur.

错误放置

图片展示的是 BCGenieEffect 将不会引发动画的情况,因为请求的动画曲线是不合理的。正确放置视图将解决此问题。

正如之前一样,BCGenieEffect 会通过控制台输出 NSLog 通知您问题。

Genie Effect ERROR: The distance between top edge of animated view and top edge of destination rect is incorrect. Animation will not be performed!

需求

  • iOS 5.0
  • 自动引用计数(ARC)
  • 在你的项目中使用QuartzCore框架

联系方式

Bartosz Ciechanowski

@BCiechanowski

许可

BCGenieEffect是在MIT许可下发布的。

版权所有(c)2012 Bartosz Ciechanowski

以下条件之下,任何人都可以免费获得本软件及其相关文档的副本(以下简称“软件”),无限制地使用、复制、修改、合并、发布、分发、再许可和/或销售软件副本,并允许向软件提供者提供软件的人执行上述操作,具体条件如下:

上述版权声明和本许可通知应包含在软件的全部或大部分副本中。

本软件按“现状”提供,不提供任何明示或默示的保证,包括但不限于适用性、针对特定目的的适用性和非侵权保证。在任何情况下,作者或版权所有者不应对任何索赔、损害或其他责任负责,无论是基于合同、侵权或其他原因,无论源于、涉及或与本软件的使用或其他操作有关。