我使用外观api来自定义UISearchBar
[[UISearchBar appearance] setSearchFieldBackgroundImage:searchBackground forState:UIControlStateNormal];
[[UISearchBar appearance] setBackgroundImage:backgroundImage];
[[UISearchBar appearance] setScopeBarBackgroundImage:backgroundImage];
[[UISearchBar appearance] setBackgroundColor:[UIColor clearColor]];
我在其他类的父类中使用它,以便在所有子类上实现该效果。
现在我需要自定义一个包含UISearchBar
的子类。我试过了link
但是当外观在超类上完成时,我无法获得该效果。如果我删除外观,那么我就可以产生这种效果。
如何通过实施外观 api?
来实现这一目标答案 0 :(得分:1)
[[UISearchBar appearanceWhenContainedIn:[yourSubClassedViewControllerWhichHasSearchbar class], nil]
setBackgroundColor:[UIColor orangeColor]];
答案 1 :(得分:0)
我使用以下代码
解决了这个问题[[UISearchBar appearance] setSearchFieldBackgroundImage:nil forState:UIControlStateNormal];
[[UISearchBar appearance] setBackgroundImage:nil];
[[UISearchBar appearance] setBackgroundColor:[UIColor clearColor]];
for (id img in srchbar.subviews) {
if ([img isKindOfClass:NSClassFromString(@"UISearchBarBackground")]) {
[img removeFromSuperview];
}
}
修改强> 以上解决方案可能导致其他人显示错误。因此,最佳解决方案标记为正确。