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

    xiaoxiao2021-04-19  93

    在做商城应用的时候,会有一种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); }];
    转载请注明原文地址: https://ju.6miu.com/read-675948.html

    最新回复(0)