我试图为我的应用添加一些不同的文字颜色以融合到图片中。我有很多输入,我的用户想要彩虹文字颜色并重复。例如,stackoverflow
这个词看起来像这样:s=red t=orange a=yellow c=green k=blue o=purple v=pink e=red r=orange f=yellow l=green o=blue w=purple
我甚至无法开始考虑如何在一个UITextView
中做到这一点
有没有人知道如何在用户输入时实现这一目标?提示?实施例
关于iOS的彩虹文字,我没有看到关于SO的任何其他帖子。 (纠正我,如果我错了)
答案 0 :(得分:8)
您可以使用NSAttributedString
:
使其成为支持OSX和iOS的通用方法。现在无需将NSColor
更改为UIColor
,在两个操作系统上都使用此功能。
#if TARGET_OS_IPHONE
typedef UIColor Color;
#elif TARGET_OS_MAC
typedef NSColor Color;
#endif
-(NSAttributedString *)colorfulStringFrom:(NSString *)string{
NSArray *colors = @[[Color redColor],
[Color yellowColor],
[Color greenColor],
[Color blueColor],
[Color purpleColor],
[Color magentaColor]
];
NSMutableAttributedString *attribString = [[NSMutableAttributedString alloc]initWithString:string];
for (NSInteger location=0; location<string.length; location++) {
NSRange range = NSMakeRange(location, 1);
Color *color = colors[location%colors.count];
[attribString addAttribute:NSForegroundColorAttributeName value:color range:range];
}
return attribString;
}
输出: