如何更改Textview中数字字符的颜色

时间:2012-05-25 08:57:29

标签: iphone ios nsstring uitextview ios5

我在- (void)textViewDidEndEditing:(UITextView *)textView中使用此代码将文本中的数字与textview.my代码中的数字分开

//removing string in text

NSString *originalString = myStringTxt;
NSMutableString *strippedString = [NSMutableString 
                                   stringWithCapacity:originalString.length];

NSScanner *scanner = [NSScanner scannerWithString:originalString];
NSCharacterSet *numbers = [NSCharacterSet 
                           characterSetWithCharactersInString:@"0123456789"];

while ([scanner isAtEnd] == NO) {
    NSString *buffer;
    if ([scanner scanCharactersFromSet:numbers intoString:&buffer]) {
        [strippedString appendString:buffer];

    } else {
        [scanner setScanLocation:([scanner scanLocation] + 1)];
    }
}

NSLog(@"%@", strippedString); // "123123123"

stippeString包含来自文本组的数字章程,我只想更改这些数字字符的字体颜色。我知道在UITextView中不可能有多种颜色,但是有什么可能的黑客方法或某些东西可以改变上面的字符串的颜色?。请帮我这样做 提前谢谢。

3 个答案:

答案 0 :(得分:0)

您可以 UITextView对象中使用多种颜色。只有一种颜色可以。

但是你可以使用潜在的替代品。我所知道的是JTextView,source code for which is available here。您可以在StackOverflow或Google上查找其他替代方案。重要的是他们需要处理“NSAttributedString”对象(这是人们可以将字体样式分配给字符串中的范围)。

我怀疑这是Apple即将推出的iOS版本(例如iOS 6)中要求修复的其中一项,但在宣布之前我们不会知道它。

答案 1 :(得分:0)

您可以将UITextview子类化,并将layerClass方法更改为返回CATextLayer。您现在可以将NSAttributedString用于CustomTextView.Layer的字符串属性。

  • 将customTextView.layer强制转换为CATextLayer
  • 您可以在NSAttributedString
  • 中拥有多种颜色

答案 2 :(得分:0)

核心文本可以帮助您为文本添加颜色,或者您可以使用uiwebview。

以此link

为例