0

如何像下面的链接那样逐渐改变 UILabel 文本的颜色?任何人都可以建议我一些代码吗?

4

4 回答 4

2

您可以使用格式化文本。

NSMutableAttributedString *str = [[NSMutableAttributedString alloc] initWithString:@"Hello World"];
[string addAttribute:NSForegroundColorAttributeName value:[UIColor greenColor] range:NSMakeRange(1,5)];

iOS < 6

其次,您需要继承 UILabel 并在 drawRect 方法中打印此字符串。您需要创建某种类型的循环来根据语速改变颜色。

iOS 6

您可以使用属性Textproperty(无需子类)

  • (void)drawTextInRect:(CGRect)rect

或重用代码:

https://github.com/mattt/TTTAttributedLabel

于 2012-12-15T10:13:05.850 回答
0

从 iOS 6.0 开始使用NSAtributedStringUILabel对于低于 iOS 6.0 的较小版本,请使用支持NSAtributedString的 TTTAttributedLabel

由它attributed string根据你的变化requirementsettingagainUILabel

编辑添加colored text你想要的,例如在循环中

标签中的第一秒:我是好孩子。

在标签中获得第二名:是好孩子。

在标签中获得第三秒:我好孩子。

在标签中的第 4 秒:我是好孩子

标签中的第 5 秒:我是好孩子

于 2012-12-15T10:14:36.807 回答
0

这是我的示例代码之一。使用 TTTAttributedLabel 类的 block 方法可能会对您有所帮助。

        [cell.lblAtt setText:strAtt afterInheritingLabelAttributesAndConfiguringWithBlock:^NSMutableAttributedString *(NSMutableAttributedString *mutableAttributedString) {

        UIFont *italicSystemFont = [UIFont boldSystemFontOfSize:12];
        CTFontRef italicFont = CTFontCreateWithName((__bridge CFStringRef)italicSystemFont.fontName, italicSystemFont.pointSize, NULL);

        NSUInteger lenght = [[tempObj objectForKey:@"username"] length];
        NSUInteger lenght2 = [[NSString stringWithFormat:@"%d",[tempArr count]] length];

        [mutableAttributedString addAttribute:(NSString*)kCTForegroundColorAttributeName value:(id)[ThemeColor CGColor] range:NSMakeRange(0,lenght)];
        [mutableAttributedString addAttribute:(NSString*)kCTFontAttributeName value:(__bridge UIFont*)italicFont range:NSMakeRange(0,lenght)];

        [mutableAttributedString addAttribute:(NSString*)kCTForegroundColorAttributeName value:(id)[ThemeColor CGColor] range:NSMakeRange(lenght+11,lenght2)];
        [mutableAttributedString addAttribute:(NSString*)kCTFontAttributeName value:(__bridge UIFont*)italicFont range:NSMakeRange(lenght+11,lenght2)];

        return mutableAttributedString;
    }];
于 2012-12-15T10:24:54.837 回答
0

您链接的应用程序 [http://www.youtube.com/watch?v=_vOYvaNhSHw] 可能是使用cocos2d.
cocos2d中,您还可以使用动画轻松更改文本颜色。

这里是一个例子: http:
//www.cocos2d-iphone.org/forum/topic/5903

这里cosos2d sdk,我建议尝试一下,因为它非常强大: http:
//www.cocos2d-iphone.org/

请享用。

于 2012-12-15T11:11:34.550 回答