2012-06-01 88 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

相關問題