iOS11 取消按钮颜色变白的解决
取消按钮所在的搜索栏背景色为白色,取消按钮之前使用setTitleColor:forState:来设置字体颜色。但是在iOS11 中,该方法失效,导致取消按钮消失不见(字体颜色与搜索栏背景色重合了)。
在网上搜索,没有发现有人遇到过类似的问题,特记录解决方案。
这个是关键代码:
//self.searchBar为搜索栏
UIButton *cancleBtn = [self.searchBar valueForKey:@"cancelButton"];
//修改标题和标题颜色
NSAttributedString *attributedTitle = [[NSAttributedString alloc] initWithString:@"取消" attributes:@{NSForegroundColorAttributeName:[UIColor blackColor]}];
[cancleBtn setAttributedTitle:attributedTitle forState:UIControlStateNormal];
小结
尝试多个方案,说不定换了方案即可达到效果。本例中setTitleColor:forState:和setAttributedTitle:forState:均可实现修改字体颜色,但是iOS11中前者失效了。