2012-06-01 56 views
0

我有这段代码在UITextview中显示一些文本..我只是想在这些字符串之间添加一个UILabel。我在这个合成文件中获取文本1这是第一个文本2这是第二文本3,这是第三个文本,,我想添加或数字字符和用于显示文本text.my代码之间附加的UILabel是如何在两个字符串之间添加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; 

之间的串范围内有没有办法做到这一点。 在此先感谢。

+0

只是一个问题,你正在编辑一个新的字符串放回到你的UITextView?为什么你希望在中间有一个单独的UILabel,而不是简单地将文本(你希望在UILable中)添加到你推回到UITextView的字符串中? – trumpetlicks

+0

@trumpetlicks haii,谢谢你的回复,我想要的是uilabel becz,这是故事..这个经文编号需要不同的颜色,但是在uitextvierw中不能添加两种颜色,所以如果我得到了uilabel我可以更改标签的文字颜色并在uilabel.ok中输入经文编号? – stackiphone

+0

好的,所以你希望文本块看起来不同:-)你已经实现了textViewDidEndEditing委托例程。你如何定义你TextView(s)(在一个xib文件中,或者你有代码动态地创建它们)? – trumpetlicks

回答

0

我不知道你这里需要用户交互,但如果你只是为用户显示的内容,但你可以取代你的UITextView通过loadHTMLString:baseURL:一个UIWebView(加载静态文本,使用HTML标记设置文字的颜色)?我参考了UITextView文档:

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

如果你真的需要有独立的UI控件在文本你不“插”了的UILabel,而是你可能有一个控制(远远超过只使用一个UIWebView更复杂)来做到这一点直到颜色变化点的文本,用于不同颜色文本的另一个控件或者你有什么,控制文本其余部分的另一个控件。它会很快变得非常漂亮(除非它像网格一样布置,即使如此,与UIWebView相比也是一件麻烦事)。

+1

我认为我们可以假定stackiphone正在实时编辑文本。不幸的是,一个UIWebView不是一个输入文本控件。如果他希望输入文本,他很可能需要做自己想做的事情,而不需要UIWebView。即使UIWebView具有输入功能,他也必须以某种方式进入文本输入流的中间,并在文本周围动态创建HTML标记以使其显示需要正常工作。 – trumpetlicks

相关问题