CircleProgressBar 版本 0.32

CircleProgressBar 版本 0.32

测试已测试
Lang语言 Obj-CObjective C
许可协议 MIT
发布最新发布2016 年 8 月

Andrew Cherkashin 维护。




CircleProgressBar 版本 0.32

  • 作者
  • Andrey Cherkashin

Circle Progress Bar iOS 控件。

需要 iOS 7.0+ 或 tvOS 9.0+

CircleProgressBar Screenshot-iOS-Example CircleProgressBar Screenshot-iOS-Example2

安装

您可以通过以下两种方式安装该控件

  1. 使用 CocoaPods
pod 'CircleProgressBar', '~> 0.32’
  1. 手动安装

    从该仓库下载源代码,并将 CircleProgressBarDemo/CircleProgressBar 文件夹复制到您的项目中。

    不要忘记将 UIKitQuartzCore 框架添加到您的项目中。

使用方法

注意:如果您手动安装了该控件,请确保已将 UIKit 和 QuartzCore 框架添加到您的项目中。

注意:如果您使用的是矩形的 CircleProgressBar 控件而不是正方形,进度条将适应可用区域并在其中部绘制。

您可以直接在 Interface Builder 中通过将视图的类更改为 "CircleProgressBar"(将被重写的 initWithCoder 方法调用)来在该控制器中使用 UIView,或者程序化地使用 init 或 initWithFrame 方法创建 CircleProgressBar。

使用 Interface Builder,您可以利用 Xcode 6 的新实时渲染功能,根据您的需求实时定制控件(以下将在 "自定义" 部分中解释)。

要更改进度,只需调用 CircleProgressBar 实例的 "setProgress:animated:" 方法

[_circleProgressBar setProgress:(CGFloat)progress animated:(BOOL)animated];

或 "setProgress:animated:duration:" 方法以定义自定义动画时间

[_circleProgressBar setProgress:(CGFloat)progress animated:(BOOL)animated duration:(CGFloat)duration];

要检查是否有正在进行的动画,请使用 isAnimating 属性。要停止正在进行的动画,您可以使用 stopAnimation 方法。在这种情况下,它将设置为动画结束值

[_circleProgressBar stopAnimation];

自定义

CircleProgressBar 提供了许多自定义属性

// Progress Bar Customization
@property (nonatomic) CGFloat progressBarWidth;
@property (nonatomic) UIColor *progressBarProgressColor;
@property (nonatomic) UIColor *progressBarTrackColor;
@property (nonatomic) CGFloat startAngle;

// Hint View Customization (inside progress bar)
@property (nonatomic) BOOL hintHidden;
@property (nonatomic) CGFloat hintViewSpacing;
@property (nonatomic) UIColor *hintViewBackgroundColor;
@property (nonatomic) UIFont *hintTextFont;
@property (nonatomic) UIColor *hintTextColor;

您可以使用这些自定义属性定义进度条的宽度、填充部分的颜色、空部分的颜色、进度条的开始角度、提示视图的间距(进度条和提示视图之间)、背景颜色、提示文本颜色和提示文本字体。

如果您想隐藏 HintView,只需将 hintHidden 属性设置为 NO。

要自定义 HintView 中的文本,您可以简单地设置 TextGenerationBlock

- (void)setHintTextGenerationBlock:(StringGenerationBlock)generationBlock;

例如:这样

[_circleProgressBar setHintTextGenerationBlock:^NSString *(CGFloat progress) {
  return [NSString stringWithFormat:@"%.0f / 255", progress * 255];
}];

如果您想使用 NSAttributedString,则可以设置 instead HintAttributedGenerationBlock

- (void)setHintAttributedGenerationBlock:(AttributedStringGenerationBlock)generationBlock;

如果您使用 Interface Builder,您可以利用 Xcode 6 的 IBDesignable 和 IBInspectable 功能的优势来自定义控件

CircleProgressBar Screenshot-Xcode-InterfaceBuilder

许可协议 (MIT)

版权 (c) 2015 Andrey Cherkashin

特此免费许可,任何获得此软件及其相关文档文件(“软件”)副本的个人都可以在不受限制的情况下处理该软件,包括但不限于使用、复制、修改、合并、发布、分发、再许可和/或销售软件副本的权利,并允许向软件提供方提供此软件的个人这样做,但须遵守以下条件。

上述版权声明和本许可声明应包含在软件的所有副本或实质部分中。

软件按“现状”提供,不提供任何形式的明示或暗示保证,包括但不限于对适销性、特定用途适用性和非侵权的保证。在任何情况下,作者或版权所有者均不对任何主张、损害或其他责任承担责任,无论这种责任基于合同、侵权或其他,以及与此软件或软件的使用或其他方式相关的任何行为。