CWCalendarLabel 是一个轻量级的 Label 控件,可以快速实现日历效果的文本动画。
下载项目文件夹后,将 CWCalendarLabel
文件夹拖拽到你的项目中,即可集成。
在需要用到 CWCarouselView 的文件中,导入 #import "CWCalendarLabel"
即可
本工程文件中附带了一个演示 Demo:CWCalendarLabelDemo
,在 Xcode 中直接运行即可查看。
导入头文件后,只需创建一个 CWCalendarLabel 对象,将其替换你的 UILabel,添加到需要显示的 View 上,即可创建该控件:
#import "CWCalendarLabel.h"
CWCalendarLabel *calendarLabel = [[CWCalendarLabel alloc] init];
calendarLabel.text = @"测试";
[self.view addSubview:calendarLabel];
CWCalendarLabel 中只有一个核心方法,只需调用该方法即可:
/**
核心方法,播放滚动动画
@param nextText 新的文本
@param direction 滚动方向
*/
- (void)showNextText:(NSString *)nextText withDirection:(CWCalendarLabelScrollDirection)direction;
其中滚动方向是一个枚举,支持向上滚动和向下滚动两个方向:
typedef enum : NSUInteger {
CWCalendarLabelScrollToTop,
CWCalendarLabelScrollToBottom,
} CWCalendarLabelScrollDirection;
方法调用示例
static int i = 99;
- (IBAction)scrollToTop:(UIButton *)sender {
i += 1;
NSString *str = [NSString stringWithFormat:@"%d",i];
[self.label showNextText:str withDirection:CWCalendarLabelScrollToTop];
}
每次点击按钮,都会播放一次滚动动画,显示新的文本。
由于继承自 UILabel,只要 UILabel 中具有的属性,CWCalendarLabel 均支持。在设置 Label 属性的同时,也会为动画 Label 设置相同的属性。
可自定义的属性有:
// 动画播放时长,默认为0.5
@property (assign, nonatomic) NSTimeInterval animateDuration;
// 示例
calendarLabel.animateDuration = 1.0;
// 动画label与原label之间的额外垂直间距,默认为0(紧贴)
@property (assign, nonatomic) CGFloat distance;
// 示例
calendarLabel.distance = 10.0;
如果您对自定义属性有其他好想法或建议,欢迎 issue 或 pull request!