UILable

//   UILabel+Attributed.h

#import <UIKit/UIKit.h>

@interface UILabel (Attributed)

- (void)text:(NSString *)str color:(UIColor *)color font:(UIFont *)font;

- (void)changeColor;

@end

//-----------------------------------------------------------

//  UILabel+Attributed.m


#import "UILabel+Attributed.h"

#import <objc/runtime.h>

@implementation UILabel (Attributed)

- (void)text:(NSString *)str color:(UIColor *)color font:(UIFont *)font

{

    if (!str)

        str = self.text;

    if (!color)

        color = self.textColor;

    if (!font)

        font = self.font;

    [self.attributeString setAttributes:@{NSForegroundColorAttributeName:color,

                                     NSFontAttributeName:font}

                             range:[self.text rangeOfString:str]];

}


- (void)changeColor

{

    self.attributedText = self.attributeString;

}


- (NSMutableAttributedString *)attributeString

{

    NSMutableAttributedString *attributeString = objc_getAssociatedObject(self, _cmd);

    if (attributeString && [attributeString.string isEqualToString:self.text]) {

        return attributeString;

    }

    attributeString = [[NSMutableAttributedString alloc] initWithString:self.text];

    objc_setAssociatedObject(self, _cmd, attributeString, OBJC_ASSOCIATION_RETAIN_NONATOMIC);

    return attributeString;

}

@end


//-----------------------------------------------------------


//    >ios7 根据文字内容计算UILable高度(自适应)

- (float)cellHeight:(NSString *)comment

{

    NSDictionary *attributes = @{NSFontAttributeName: [UIFont systemFontOfSize:14]};

    CGRect rect = [comment boundingRectWithSize:CGSizeMake(320, MAXFLOAT)

                                        options:NSStringDrawingUsesLineFragmentOrigin

                                     attributes:attributes

                                        context:nil];

    return rect.size.height;

}


转载于:https://my.oschina.net/751547752/blog/290673

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值