0

我有这段代码可以在 UITextview 中显示一些文本。我只想在这些字符串之间添加一个 UILabel。我正在以这种格式获取文本,1 这是第一个文本 2 这是第二个文本 3 这是第三个文本,我想要在数字字符和文本之间添加或附加 UILabel。我显示文本的代码是

 NSMutableString *combined = [NSMutableString string];

    for(NSUInteger idx = 0; idx < [delegatee.allSelectedVerseEnglish count]; idx++) {
        [combined appendFormat:@"   %d %@", 
         idx + 1, 
         [delegatee.allSelectedVerseEnglish objectAtIndex:idx]];

    }
    NSNumberFormatter * f = [[NSNumberFormatter alloc] init]; 
    NSNumber * n = [f numberFromString:combined]; 
    NSLog(@"N: %@", n);
       maintextview.text =combined;

组合是上面格式中的文本,maintextview 是 UITextview。

我也得到了两个句子之间的字符串范围

- (void)textViewDidEndEditing:(UITextView *)textView
{
    if (textView == maintextview) {

    mainpopupview.frame =CGRectMake(0, 0, 768, 1004)    ;
    [self.view addSubview:mainpopupview];

    NSRange selectedRange = [textView selectedRange];
    NSString *backString = [maintextview.text substringToIndex:selectedRange.location];
    NSRange backRange = [backString rangeOfString:@"   " options:NSBackwardsSearch];
    NSRange backRangee = [backString rangeOfString:@"   " options:NSBackwardsSearch];
    int  myRangeLenght = backRangee.location - backRange.location;
    NSRange myStringRange = NSMakeRange (backRange.location, myRangeLenght);
    NSString *forwardString  = [maintextview.text substringFromIndex:backRange.location];
    NSLog(@"%@",[[forwardString componentsSeparatedByString:@"   "] objectAtIndex:1]);
    NSLog (@"%@",  [maintextview.text substringWithRange:myStringRange]);

    NSString * myStringTxt = [[forwardString componentsSeparatedByString:@"   "] objectAtIndex:1];
    NSLog(@"1 %@", myStringTxt);

    //  maintextview.textColor = [UIColor yellowColor];

    NSRange myStringRangee = [maintextview.text rangeOfString:myStringTxt];
    [maintextview select:self];
    maintextview.selectedRange = myStringRangee;

有什么办法可以做到这一点。提前致谢。

4

1 回答 1

0

我不知道你在这里需要什么用户交互,但如果你只是为用户显示文本,但你可以用 a 替换你UITextViewUIWebView(通过 加载静态文本loadHTMLString:baseURL:,使用 html 标记设置文本的颜色)?我参考了 UITextView 文档:

此类不支持文本的多种样式。您指定的字体、颜色和文本对齐属性始终适用于文本视图的全部内容。要在您的应用程序中显示更复杂的样式,您需要使用 UIWebView 对象并使用 HTML 呈现您的内容。

如果您确实需要使用单独的 UI 控件(比仅使用 UIWebView 复杂得多)来执行此操作,则不要在文本中“插入” UILabel,而是您可能对文本有一个控件直到点颜色变化,另一个控件用于不同颜色的文本或你有什么,另一个控件用于其余文本。它会很快变得毛茸茸(除非它像网格一样布局,即使这样与 UIWebView 相比也很麻烦)。

于 2012-06-01T17:40:20.450 回答