2014-01-30 58 views
-1

我有以下文本在UITextview帶有NSAttributedString的UItextview中字符的屬性範圍?

您好! 您右上角的車是您設置汽車規格的地方 - 不用擔心,只需要30秒,您只需將其設置一次即可!

我想:

  1. 大膽的 「你好!」並使其尺寸變大爲17
  2. 強調「只有30秒」
  3. 使「一次!」紅。

我該怎麼做?我對NSAttributedString的知識知之甚少,對文檔沒有任何好運。

三江源

+0

我應該添加文本是不可選擇和不可編輯 – Cescy

+0

從https://www.cocoacontrols.com/search?utf8=%E2%9C%93&q=UITextView – iPatel

+0

https://www.cocoacontrols獲取自定義UITextview。 com/controls/rfmarkdowntextview – iPatel

回答

1

如果你想通過故事板來實現這一點,選擇的UITextView &轉到屬性檢查器。再看看下面的圖片

enter image description here

如果編程,檢查這些link & & Here:找到Hello!範圍

+0

這個答案很完美!謝謝你,我不知道你可以像這樣簡單地編輯它。相當失望的只是downvoted這個其他SO memebers ... – Cescy

+0

@CescSergey:別擔心,很快你會在他們的位置.. –

1

創建易變的屬性串,執行以下步驟

NSMutableAttributedString * attrString = [[NSMutableAttributedString alloc] initWithString:yourTextView.text]; 

1)並設置字體大小爲

NSRange foundRange = [attrString rangeOfString:@"Hello!"]; 
if (foundRange.location != NSNotFound) 
{ 
    [attrString beginEditing]; 
    [attrString addAttribute: NSFontAttributeName 
        value:[[UIFont boldSystemFontOfSize:17] fontName] 
        range:boldedRange]; 
    [attrString endEditing]; 
} 

2)的搜索範圍爲only 30 seconds並設置下劃線樣式

foundRange = [attrString rangeOfString:@"only 30 seconds"]; 
if (foundRange.location != NSNotFound) 
{ 
    [attrString beginEditing]; 
    [attrString addAttribute:NSUnderlineStyleAttributeName value:[NSNumber numberWithInt:1] range:foundRange]; 
    [attrString endEditing]; 
} 

3)的搜索範圍爲once!並設置行程顏色。

foundRange = [attrString rangeOfString:@"once!"]; 
if (foundRange.location != NSNotFound) 
{ 
    [attrString beginEditing]; 
    [attrString addAttribute:NSStrokeColorAttributeName value:[UIColor redColor] range:foundRange]; 
    [attrString endEditing]; 
} 

最後屬性串設置爲你的TextView作爲

yourTextView.attributedText = attrString; 

注:以上僅ios6+.工作。

+0

這是偉大的,謝謝!但另一個答案更簡單得多。榮譽我的朋友 – Cescy

+0

我沒有看到rangeOfString可用於在Swift 3中的NSMutableAttributedString實例上調用 – vikzilla