您的位置:首页 > 产品设计 > UI/UE

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

2017-04-14 16:48 2271 查看
在做商城应用的时候,会有一种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);

}];
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签:  uilabel ios开发
相关文章推荐