在标签的文本值之间配置可变过渡。通过设置标签的text
属性来触发动画非常简单。
platform :ios, '7.0'
pod "TOMSMorphingLabel", "~> 0.5"
以与UILabel相同的方式实例化TOMSMorphingLabel,将得到一个完全正常工作的可变形标签。
TOMSMorphingLabel *label = [[TOMSMorphingLabel alloc] initWithFrame:CGRectMake(0, 42, self.view.frame.size.width, 42)];
[self.view addSubview:label];
设置和改变标签的文本属性将自动将标签的先前文本转换为新值。
label.text = @"Swift";
使用setText:withCompletionBlock
设置标签的文本属性将使标签变形并在动画完成后触发完成块。
[label setText:@"Swift" withCompletionBlock:^{
NSLog(@"label.text is now 'Swift'");
}];
注意,标签将同时执行一个变形过渡。如果在过渡过程中标签的文本值发生变化——即使它发生了多次变化——标签将调用到一个最年轻的已设置文本值的过渡。
TOMSMorphingLabel提供了配置变形过渡的外观和感觉的可能性。可配置的属性定义如下
可配置属性animationDuration: CGFloat | 从设置新文本值到变形过渡结束所经过的时间。默认:0.37 |
characterAnimationOffset: CGFloat | 字符收缩和alpha效果的时空传播速度。默认:0.25 |
characterShrinkFactor: CGFloat | 完全消失的字符的缩放因子。默认:4 |
morphingEnabled: BOOL | 定义了文本值之间的变形过渡是否启用。默认:YES |
CADisplayLink
和TOMSMorphingLabel
之间的强引用周期[UIView areAnimationsEnabled]
状态setText:withCompletionBlock:
我很乐意看到您改进这个库的想法!最佳的方式是通过提交拉取请求或新的Github问题进行贡献。
setText:withCompletionBlock:
CADisplayLink
和 TOMSMorphingLabel
之间的强引用循环问题TOMSMorphingLabel
尊重全局 [UIView areAnimationsEnabled]
状态TOMSMorphingLabel 在 MIT 许可证下可用。详情请参见 LICENSE 文件。