ios 設定label 不同字型大小顏色
建立分類 #import"UILabel+AutoSet.h" 此分類目的是實現對一個UILabel中的字型大小顏色進行改變。
使用方法,在使用的地方引用標頭檔案 #import "UILabel+AutoSet.h" 或者 直接放到PrefixHeader檔案中去。
NSArray * arr = @[@[@"標題1",@"686868",@"15"],@[@"標題2",@"ff8722",@"15"]];
[self.myLabelgetLabelUIWithArray:arr];
使用時注意事項:引數陣列中的值不可以為空,不然就會報陣列內物件為空的錯誤。
#import <UIKit/UIKit.h>
@interface UILabel (AutoSet)
-(void)getLabelUIWithArray:(NSArray *)AutoArr;
@end
#import "UILabel+AutoSet.h"
@implementation UILabel (AutoSet)
-(void)getLabelUIWithArray:(NSArray *)AutoArr;
{
// 此陣列所傳值格式必須為 @[@[文字,顏色,字型],@[文字,顏色,字型],@[文字,顏色,字型]];顏色需為RGB十六進位制格式字串,字型為字號,也是字串格式 例:
NSMutableString * allStr = [[NSMutableStringalloc] init];
for (int i =0;i < AutoArr.count; i++) {
[allStr appendString:[NSStringstringWithFormat:@"%@",AutoArr[i][0]]];
}
NSMutableAttributedString * mostStr = [[NSMutableAttributedStringalloc
int j = 0;
for (int i =0;i < AutoArr.count; i++) {
NSString * str = AutoArr[i][0];
UIColor * myColor = [selfgetColor:AutoArr[i][1]];
UIFont * font = [UIFontsystemFontOfSize:[AutoArr[i][2]floatValue]];
NSRange range = NSMakeRange(j, str.length);
j += str.length;
[mostStr addAttribute:NSForegroundColorAttributeNamevalue:myColor range:range];//設定字型顏色
[mostStr addAttribute:NSFontAttributeNamevalue:font range:range];//設定字型字號和字型類別
}
self.attributedText = mostStr;
}
- (UIColor *) getColor:(NSString *)hexColor{
unsigned int red, green, blue;
NSRange range;
range.length =2;
range.location =0;
[[NSScannerscannerWithString:[hexColor substringWithRange:range]]scanHexInt:&red];
range.location =2;
[[NSScannerscannerWithString:[hexColor substringWithRange:range]]scanHexInt:&green];
range.location =4;
[[NSScannerscannerWithString:[hexColor substringWithRange:range]]scanHexInt:&blue];
return [UIColorcolorWithRed:(float)(red/255.0f)green:(float)(green/255.0f)blue:(float)(blue/255.0f)alpha:1.0f];
}
@end