在使用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);
完美解决,并且兼容所有版本