2016-11-09 55 views
1

我該如何製作加粗(強)NSString的前3個符號?比如我有串@"Hello",但我需要:赫爾 LONSString中的粗體符號

我有這個字符串:

NSString *testString = @"Hello"; 
+1

試試這個http://stackoverflow.com/a/6013751/6619234 – seggy

+1

使用'NSAttributeString' – Shreyank

+1

的可能的複製[任何方式到的NSString的加粗部分?] (http://stackoverflow.com/questions/6013705/any-way-to-bold-part-of-a-nsstring) – EridB

回答

0
NSString *testString = @"Hello"; 

//Checking string length 
if (testString.length >= 3) 
{ 

    NSMutableAttributedString *attrString = [[NSMutableAttributedString alloc] initWithString:testString]; 

    //Bold font range 
    NSRange boldFontRange = NSMakeRange(0, 3); 
    [attrString addAttribute:NSFontAttributeName value:[UIFont boldSystemFontOfSize:13.0] range:boldFontRange]; 

    //Setting Normal Font 
    NSRange normalFontRange = NSMakeRange(3, testString.length - 3); 
    [attrString addAttribute:NSFontAttributeName value:[UIFont systemFontOfSize:13.0] range:normalFontRange]; 


    //Setting attributed Text to Label 
    [self.lblTitle setAttributedText:attrString]; 
} 
1

你會使用這個方法,在裏面添加你的原始字符串的一部分要在其中更改其字體的字符串。

這是格式化當前字符串的全局解決方案。

語法調用方法

[self getAttributedStringWithFullString:@"Hello" forRangeOfString:@"Hel" withRangeOfStringFont:[UIFont boldSystemFontOfSize:12.0f]]; 





-(NSAttributedString*)getAttributedStringWithFullString:(NSString*)fullString 
             forRangeOfString:(NSString*)rangeOfString 
            withRangeOfStringFont:(UIFont*)rangeOfStringFont 
{ 
    NSMutableAttributedString* att_string = [[NSMutableAttributedString alloc]initWithString:fullString]; 
    NSRange atRange = [att_string.string rangeOfString:rangeOfString]; 

    if (atRange.location != NSNotFound) 
    { 
     [att_string addAttribute:NSFontAttributeName value:rangeOfStringFont range:atRange]; 
    } 

    return att_string; 
}