iOS设置改变UILabel、UIButton的多种颜色和字体大小(非常好用)

释放双眼,带上耳机,听听看~!

简介:

UILabel 中的文字有时会有:不同的字体大小、不同的颜色,现在一个方法即可解决这一问题,

具体使用方式,如下案例:

//创建label

 UILabel *label = [[UILabel alloc] initWithFrame:CGRectMake(100,380,200,60)];

    label.backgroundColor = [UIColor yellowColor];

    label.font = [UIFont systemFontOfSize:16];

    label.text =@"Hello, girl, Boy, money";

    label.textColor = [UIColor redColor];

    label.textAlignment = NSTextAlignmentCenter;

    [self.view addSubview:label];

  

    NSArray *colorArray =@[[UIColor greenColor],[UIColor blueColor],[UIColor grayColor]];

//方法调用

    [self changeTextLab:label

                   stringArray:@[@"Hello",@"Boy",@"money"]

                    colorArray:colorArray

                     fontArray:@[@"18",@"22"]];

 

案例效果图如下:

 

以下是具体方法:

#pragma mark 改变label的文本的两种以上颜色及字体

/**

 iOS改变UILabel的多种颜色和字体大小

 @param strArray  
需要改变的字符串数组

 @param colorArray
需要改变的颜色数组

 @param fontArray 
需要改变的字体数组

 注意:需要改变的字符串(颜色、字体)按数组顺序排列

 字符串1 颜色1 字体1、

 字符串2 颜色2 字体2...

 一一对应,具体效果,由测试案例便可知晓

 */

+ (void)changeTextLab:(UILabel *)myLabel

               stringArray:(NSArray *)strArray

                colorArray:(NSArray *)colorArray

                 fontArray:(NSArray *)fontArray {

    NSMutableAttributedString *mutAttStr = [[NSMutableAttributedString alloc] initWithString:myLabel.text];

    NSString* _str =nil;

    UIFont*  _font =nil;

    NSRange _range =NSMakeRange(0,0);

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

        //NSLog(@"---> strArray.count = %ld",strArray.count);

        _str = strArray[i];

        NSUInteger location = [[mutAttStr string] rangeOfString:_str].location;

        NSUInteger length   = [[mutAttStr string] rangeOfString:_str].length;

        _range = NSMakeRange(location, length);

        // 改变颜色

        if (colorArray.count >= (i+1)) {

            [mutAttStr addAttribute:NSForegroundColorAttributeNamevalue:colorArray[i] range:_range];

        }

        // 改变字体大小

        if (fontArray.count >= (i+1)) {

            _font = [UIFont systemFontOfSize:[fontArray[i] floatValue]];

            [mutAttStr addAttribute:NSFontAttributeNamevalue:_fontrange:_range];

        }

    }

    [myLabel setAttributedText:mutAttStr];

}







// 




/**

 改变 UIButton 的文本的 两种以上颜色及字体 

 使用方式同上

*/





  UIButton* Btn=[UIButtonbuttonWithType:UIButtonTypeCustom];

        Btn.frame=
CGRectMake(60,
260, 200,
60);

        Btn.backgroundColor= [UIColoryellowColor];

        [Btn setTitle:@"按钮:第一次见到你就心动"
forState:UIControlStateNormal];

        [Btn setTitleColor:[UIColorwhiteColor] forState:UIControlStateNormal];

        [self.view addSubview:Btn];

        

        [self changeTextBtn:Btn

                    stringArray:@[@"第一次见到你",@"就心动"]
colorArray:@[[UIColor cyanColor],[UIColor redColor]]

                      fontArray:@[@"18",@"14"]];







// 改变UIButton的文本的两种以上颜色及字体

+ (void)changeTextBtn:(UIButton *)myBtn

          stringArray:(NSArray *)strArray

           colorArray:(NSArray *)colorArray

            fontArray:(NSArray *)fontArray {

    

    NSMutableAttributedString *mutAttStr = [[NSMutableAttributedStringalloc] initWithString:myBtn.titleLabel.text];

    

    NSString* _str =
nil;

    UIFont*  _font =
nil;

    NSRange _range =
NSMakeRange(0,
0);

    

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

        //NSLog(@"---> strArray.count = %ld",strArray.count);

        _str = strArray[i];

        NSUInteger location = [[mutAttStr
string] rangeOfString:_str].location;

        NSUInteger length   = [[mutAttStr
string] rangeOfString:_str].length;

        _range = NSMakeRange(location, length);

        // 改变颜色

        if (colorArray.count >= (i+1)) {

            [mutAttStr addAttribute:NSForegroundColorAttributeNamevalue:colorArray[i] range:_range];

        }

        // 改变字体大小

        if (fontArray.count >= (i+1)) {

            _font = [UIFontsystemFontOfSize:[fontArray[i]
floatValue]];

            [mutAttStr addAttribute:NSFontAttributeNamevalue:_font range:_range];

        }

    }

    [myBtn setAttributedTitle:mutAttStr
forState:UIControlStateNormal];

}

 

 

 

 

 

人已赞赏
iOS文章

iOS UIViewController推出的半透明效果

2020-2-20 14:34:00

iOS文章

安装Cocoapods, 更新gem出现的问题。

2020-2-20 15:37:10

个人中心
购物车
优惠劵
今日签到
有新私信 私信列表
搜索