事情是这样的,今天用iOS13的手机跑了一下代码,偶然发现我设置的按钮富文本显示的不对了。

按钮是酱婶儿的

self.takeCarDateButton = [UIButton buttonWithType:UIButtonTypeCustom];
self.takeCarDateButton.titleLabel.font = [UIFont systemFontOfSize:12];
self.takeCarDateButton.titleLabel.lineBreakMode = 0;
self.takeCarDateButton.titleLabel.textAlignment = NSTextAlignmentCenter;
[self.view addSubview:self.takeCarDateButton];

富文本是酱婶儿的

NSString *dateStr = @"2019-12-02 14:00";
NSString *takeCarDateStr = [NSString stringWithFormat:@"取车时间\n%@",dateStr];
NSMutableAttributedString *attString = [[NSMutableAttributedString alloc] initWithString:takeCarDateStr];
[attString addAttribute:(NSString*)NSFontAttributeName value:[UIFont systemFontOfSize:12] range:[takeCarDateStr @"取车时间"]];
[self.takeCarDateButton setAttributedTitle:attString forState:UIControlStateNormal];

有啥问题吗?简直没毛病啊!But!还是得解决啊……

按理说,应该是按钮居中显示两行文字,如下:

       取车时间

2019-12-02 14:00

但是,在iOS13上是这样的,如下:

       取车时间

换行后的文字就是不出来~阿西吧

然后第一时间百度一下呀~这种问题应该有大把的人说吧~然鹅!根本没有人说这个事好么!大家难道都不用富文本的吗?就我一人?不可能啊~

唉……我太难了……

那就开始试呗,看看到底是哪出了问题

结果……我发现:

如果  富文本中需要改变字号的文字  在换行符前的话,设置 需要改变的字号>=按钮正常字号 就显示两行了;

如果  富文本中需要改变字号的文字  在换行符后的话,就爱咋设咋设了。

哦买尬!这也太坑了吧!

的境况的

12-19 10:47