1. 程式人生 > >ios 設定label 不同字型大小顏色

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十六進位制格式字串,字型為字號,也是字串格式  例:  

NSArray * arr = @[@[@"標題1",@"686868",@"15"],@[@"標題2",@"ff8722",@"15"]];

NSMutableString * allStr = [[NSMutableStringalloc] init];

    for (int i =0;i < AutoArr.count; i++) {

        [allStr appendString:[NSStringstringWithFormat:@"%@",AutoArr[i][0]]];

    }

NSMutableAttributedString * mostStr = [[NSMutableAttributedStringalloc

] initWithString:allStr];

    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