今天遇到一个问题,iOS13 attributedPlaceholder颜色设置无效
NSMutableAttributedString *attrString = [[NSMutableAttributedString alloc] initWithString:@"搜索" attributes:
@{NSForegroundColorAttributeName:[UIColor redColor]}
];
searchTextField.attributedPlaceholder = attrString;
就是这么设置的,然后发现颜色字体颜色始终为灰色。但是同样的代码11,12系统是可以的
百度了半天都没有找到办法。不过最终还是找到一个可行的办法
就是在vc 的viewWillAppear方法中,添加
if(@available(iOS13.0, *)) {
dispatch_async(dispatch_get_global_queue(DISPATCH_QUEUE_PRIORITY_BACKGROUND, 0), ^{
usleep(3000);
dispatch_async(dispatch_get_main_queue(), ^{
self.searchBar.searchTextField.attributedPlaceholder = [[NSAttributedString alloc]initWithString:@"搜索"
attributes:@{NSForegroundColorAttributeName:[UIColor whiteColor]}];
});
});
}
不过我看别人也没有给出其他解释,感觉应该是13系统,在显示的过程中又重新覆盖了默认色,导致显示始终为灰色