一行代码解决label的内边距问题

项目里有标签的样式要做,只展示一个标签,首先想到了用label来做,可是label没有设置edgeInsets的方法,那么久只能自定义了,废话不多说,直接上代码

- (instancetype)initWithFont:(UIFont *)textFont withTextColor:(UIColor *)textColor;
{
    if (self = [super init]) {
        self.layer.borderWidth = 1;
        self.layer.borderColor = [UIColor blackColor].CGColor;
        self.layer.cornerRadius = 4;
        self.textAlignment = NSTextAlignmentCenter;
        self.font = textFont;
        self.textColor = textColor;
    }
    return self;
}

-  (CGSize)intrinsicContentSize {
    CGSize originalSize = [super intrinsicContentSize];
    if (originalSize.width<0.9 || originalSize.height<0.9) {//当自身没有大小(text.length<1)
        return originalSize;
    }
    CGSize size = CGSizeMake(originalSize.width + 2 * 10, originalSize.height + 2 * 5);
    return size;
}
- (EdgeInsetsLabel *)titleLabel
{
    if (!_titleLabel) {
        _titleLabel = [[EdgeInsetsLabel alloc] initWithFont:[UIFont systemFontOfSize:12] withTextColor:[UIColor orangeColor]];
    }
    return _titleLabel;
}

 [self.view addSubview:self.titleLabel];
    [self.titleLabel mas_makeConstraints:^(MASConstraintMaker *make) {
        make.top.mas_equalTo(self.view).offset(100);
        make.left.mas_equalTo(self.view).offset(80);
    }];
self.titleLabel.text = @"测试label内边距";

这样问题就解决了

©著作权归作者所有,转载或内容合作请联系作者
【社区内容提示】社区部分内容疑似由AI辅助生成,浏览时请结合常识与多方信息审慎甄别。
平台声明:文章内容(如有图片或视频亦包括在内)由作者上传并发布,文章内容仅代表作者本人观点,简书系信息发布平台,仅提供信息存储服务。

相关阅读更多精彩内容

  • Android 自定义View的各种姿势1 Activity的显示之ViewRootImpl详解 Activity...
    passiontim阅读 179,007评论 25 709
  • 1、通过CocoaPods安装项目名称项目信息 AFNetworking网络请求组件 FMDB本地数据库组件 SD...
    阳明AI阅读 16,202评论 3 119
  • 比赛完了就说有些人是内定 有人夸奖几句就开始自我膨胀 也不是多大的比赛 无论结果怎样 表面赢得起输得起 背后却开始...
    氖啊阅读 306评论 0 0
  • 1.为什么要我做成本岗位,我是否可以不做成本岗位,或者说我一个月后可以不做成本岗位。 2、进入这个行业过后,我们可...
    人言白一阅读 271评论 0 0
  • 使用Homebrew安装unrar 2.cd到rar文件目录,然后在终端输入下列命令: unrar使用手册http...
    杨柳小易阅读 234评论 0 0

友情链接更多精彩内容