如何在两个字符串之间添加UILabel

时间:2012-06-01 15:27:30

标签: iphone ios ios5 nsstring nsrange

我有这个代码在UITextview中显示一些文本..我只想在这些字符串之间添加一个UILabel。我在这个格式中得到文本,1这是第一个文本2这是第二个文本3这是第三个文本,,我想在数字字符和text.my之间添加或附加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;

有没有办法做到这一点。 提前谢谢。

1 个答案:

答案 0 :(得分:0)

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

  

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

如果你真的需要使用单独的UI控件(比使用UIWebView复杂得多),你不要在文本中“插入”UILabel,而是你可能有一个控件用于文本到了颜色变化的程度,对另一种颜色的文本的另一个控制或你有什么,另一个控制文本的其余部分。它会很快发展(除非它像网格一样布局,即使这样,与UIWebView相比也是一件麻烦事。)