iOS开发UILabel篇:两个字号大小不同的Label如何做到文字底部对齐

在做商城应用的时候,会有一种UI布局是这样的:

商品现价的Label字号比较大,原价的Label字号较小,由于UILabel字号不同内边距就会不同,即使我们设置两个Label底部对齐,label内的文字也无法做的对齐

这里写图片描述

处理前:

这里写图片描述

处理后:

这里写图片描述

第一种处理方式:

设置原价的Label与现价的Label底部做一个偏移即可。(不要让两个Laebl底部对齐)

第二种处理方式:(设置内边距方式)

继承UILabel的类:YJLabelTest

#import <UIKit/UIKit.h>

@interface YJLabelTest : UILabel

@property (nonatomic, assign) UIEdgeInsets textInsets; // 控制文字与控件边界的间距

@end
#import "YJLabelTest.h"

@implementation YJLabelTest

- (instancetype)init {
    if (self = [super init]) {
        _textInsets = UIEdgeInsetsZero;
    }
    return self;
}

- (instancetype)initWithFrame:(CGRect)frame {
    if (self = [super initWithFrame:frame]) {
        _textInsets = UIEdgeInsetsZero;
    }
    return self;
}

- (void)drawTextInRect:(CGRect)rect {
    [super drawTextInRect:UIEdgeInsetsInsetRect(rect, _textInsets)];
}

测试实现(关注点:设置底部内边距的代码)

    YJLabelTest *label = [[YJLabelTest alloc] init];
    label.text = @"试一试";
    label.font = [UIFont systemFontOfSize:80];
    [self.view addSubview:label];
    label.backgroundColor = [UIColor redColor];

    label.textInsets = UIEdgeInsetsMake(0.f, 0.f, -20.f, 0.f);  // 设置底部内边距

    [label mas_makeConstraints:^(MASConstraintMaker *make) {

        make.center.equalTo(self.view);


    }];

    YJLabelTest *labe2 = [[YJLabelTest alloc] init];
    labe2.text = @"试一试";
    labe2.font = [UIFont systemFontOfSize:20];
    labe2.textInsets = UIEdgeInsetsMake(0.f, 0.f, 0.f, 0.f);  // 设置底部内边距
    labe2.backgroundColor = [UIColor greenColor];
    [self.view addSubview:labe2];

    [labe2 mas_makeConstraints:^(MASConstraintMaker *make) {

        make.bottom.equalTo(label);
        make.left.equalTo(label.mas_right);

    }];
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

sailip

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值