CERoundProgressView 以饼图分享图表的形式显示进度。尽管它没有继承 UIProgressView,但其 API 很相似。
视图在图形上非常简单,仅由一个背景圆和一个彩色弧线组成。
然而,与其他元素结合使用时,它变得非常有趣。例如,示例程序将它用作按钮的背景,该按钮使用图像,部分部分是透明的。
将以下文件拖到您的 Xcode 项目中
因为进度视图使用 Core Animation,所以您的目标也必须链接到 QuartzCore 框架。
我找不到将自定义可动画属性添加到 UIView 中的方法。因此,以下示例代码对动画的持续时间没有影响。
[UIView animateWithDuration:3.0 animations:^{
self.roundProgressView.progress = 12.0;
}];
因此,CERoundProgressView 添加了一个 animationDuration 属性来完成这个目的。
CERoundProgressView 与 iOS 5 和 iOS 6 兼容。
示例项目中没有启用 ARC,类以旧方式管理内存。
如果在您的项目中启用 ARC,则编译器将关于 CERoundProgressLayer.m 中的 -dealloc 方法发出抱怨。您应该禁用此文件的 ARC 使用编译器标志 -fno-objc-arc。
CERoundProgressView 使用了仅在 iOS 5.0 以后可用的 UIAppearance API。如果您希望链接到旧 SDK,您可以将 CERoundProgressView.h 修改为类不遵守 UIAppearanceContainer 协议,并且其属性不声明为 UI_APPEARANCE_SELECTOR。
示例程序显示了切换在播放和暂停之间切换的按钮。CERoundProgressView 位于其下方。
CEPlayer 是最有趣的类。它在 20 秒的持续时间内,其位置从 0 变化到 1。位置每 0.5 秒发生突变,这是故意的:您会注意到滑块从一个值跳到另一个值,而进度视图则平滑地动画化。
CEViewController 是 CEPlayer 的代理。其目的是捕获按钮动作并设置滑块和进度视图的进度。
版权所有(c)2012,Céroce。保留所有权利。
只要满足以下条件,允许重新分发和使用源代码和二进制代码,修改或不修改:
源代码的重新分发必须保留上述版权声明、本许可列表和以下免责声明。
二进制形式的重新分发必须在文档和/或其他伴随的资料中重新生产上述版权声明、本许可列表和以下免责声明。
未经 Céroce 书面许可,不得使用 Céroce 或其贡献者的名称宣传或推广由本软件派生的产品。
本软件由版权所有者和 contributors 提供“按原样”和任何明示或暗示的保证,包括但不仅限于适销性和针对特定目的的适用性保证。在任何事件中,CÉROCE 不承担任何直接、间接、意外、特殊、示范性的或后果性的损害(包括但不限于替代商品或服务的采购;使用、数据或利润的损失;或业务中断),不管这种损害是由于何种原因造成的,以及基于何种法律责任理论(无论是合同、严格责任还是侵权责任,包括疏忽或其他),即使是被告知了这种损害的可能性。