Masonry设置UIbutton内边距兼容问题

在使用masonry过程中为button设置约束时宽度自适应,但是一般button的title两边都会留白,一般最简单的做法是两边加空格。但是身为较真的我不想这样做,而且空格也不能满足UI对间距像素的要求。
最开始想了一个骚操作

[confirmButton.titleLabel mas_remakeConstraints:^(MASConstraintMaker *make) {
    make.top.mas_offset(18);
    make.bottom.mas_offset(-18);
 }];

但是这样在iOS10.0的版本里不兼容,导致标题不显示
然后想到了用

[confirmButton setTitleEdgeInsets:UIEdgeInsetsMake(18, 0, 18, 0)];
[confirmButton.titleLabel sizeToFit];

但是并不能解决问题。
最后、最后、最后!!!
想到了UIbutton一个被我们忽略的属性contentEdgeInsets //内边距
所以:

confirmButton.contentEdgeInsets = UIEdgeInsetsMake(18, 0, 18, 0);

完美解决,并且兼容所有版本

你可能感兴趣的:(Masonry设置UIbutton内边距兼容问题)