1 问题描述
iPhone SE / 10.3.3手机,正常通过 CustomView
设置rightBarButtonItem
但是显示不了。
self.navigationItem. rightBarButtonItem = [[UIBarButtonItem alloc] initWithCustomView:rightBtn];
2 问题原因
通过直接设置 Title 的方式时,有反应,但是只是简单显示这个 ...
,一看到这个我就反应到,基本上是因为 Lable 大小不合适时,就会出现这个现象,推断自定义的 button 按钮没有计算出合适 size。
3 解决方法
[rightBtn sizeToFit]; // 手动计算大小
修正后的项目代码
UIButton *rightBtn = [UIButton buttonWithType:UIButtonTypeCustom];
[rightBtn setTitle:@"验证" forState:UIControlStateNormal];
[rightBtn setTitleColor:kColor_333333 forState:UIControlStateNormal];
rightBtn.titleLabel.font = kFontSize(14);
[rightBtn addTarget:self action:@selector(codeLogin) forControlEvents:UIControlEventTouchUpInside];
[rightBtn sizeToFit]; // 手动计算大小
self.navigationItem.rightBarButtonItem = [[UIBarButtonItem alloc] initWithCustomView:rightBtn];