在做商城应用的时候,会有一种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