之前我们在使用 UISearchBar 时会有修改其背景颜色的需求,使用如下方法:
UISearchBar *searchBar = [[UISearchBar alloc] initWithFrame:frame];
searchBar.searchBarStyle = UISearchBarStyleProminent;
// --- start ---
UIView *view = searchBar.subviews[0];
view.backgroundColor = yourColor;
for (UIView *subview in view.subviews) {
if ([subview isKindOfClass:NSClassFromString(@"UISearchBarBackground")]) {
[subview removeFromSuperview];
break;
}
}
// --- end ---
[someView addSubview:searchBar];
此方法在 iOS13 系统下已不可使用,会导致程序崩溃且无错误信息。