在您 iOS 应用中添加 OSX 风格的控制按钮效果。
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];
同时指定 endRect
和 startRect
的坐标,坐标是视图父视图中的。
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!
Bartosz Ciechanowski
BCGenieEffect是在MIT许可下发布的。
版权所有(c)2012 Bartosz Ciechanowski
以下条件之下,任何人都可以免费获得本软件及其相关文档的副本(以下简称“软件”),无限制地使用、复制、修改、合并、发布、分发、再许可和/或销售软件副本,并允许向软件提供者提供软件的人执行上述操作,具体条件如下:
上述版权声明和本许可通知应包含在软件的全部或大部分副本中。
本软件按“现状”提供,不提供任何明示或默示的保证,包括但不限于适用性、针对特定目的的适用性和非侵权保证。在任何情况下,作者或版权所有者不应对任何索赔、损害或其他责任负责,无论是基于合同、侵权或其他原因,无论源于、涉及或与本软件的使用或其他操作有关。