Ответ 1
Попробуйте следующее:
if(IOS_7)
{
self.searchBar.searchBarStyle = UISearchBarStyleMinimal;
}
В настоящее время я работаю над приложением, которое отлично работает, пока не появится ios7. Панель поиска была прозрачной и смешана с синим фоном навигационной панели. Теперь, когда я работаю в ios7, навигационная панель синяя, однако панель поиска имеет серый фон. Как сделать его синим или прозрачным?
Вот изображение:
Попробуйте следующее:
if(IOS_7)
{
self.searchBar.searchBarStyle = UISearchBarStyleMinimal;
}
Вы можете установить для параметра "Оттенок" значение "Очистить цвет" в Interface Builder (.xib):
Это также можно сделать в коде:
self.searchBar.barTintColor = [UIColor clearColor];
Чтобы сделать его плоским, вам просто нужно удалить представление UISearchBarBackground.
Я создал рекурсивный метод для правильной очистки панели поиска.
- (void) removeUISearchBarBackgroundInViewHierarchy:(UIView *)view
{
for (UIView *subview in [view subviews]) {
if ([subview isKindOfClass:NSClassFromString(@"UISearchBarBackground")]) {
[subview removeFromSuperview];
break; //To avoid an extra loop as there is only one UISearchBarBackground
} else {
[self removeUISearchBarBackgroundInViewHierarchy:subview];
}
}
}
Вы можете просто отправить свою панель поиска методу и впоследствии изменить цвет.
[self removeUISearchBarBackgroundInViewHierarchy:self.searchDisplayController.searchBar];
self.searchDisplayController.searchBar.backgroundColor = yourUIColor;
** Изменить - это работало для меня в iOS 7
// Set the color to whatever blue color that is in your screenshot
self.searchBar.backgroundImage = [UIImage imageWithColor:[UIColor redColor] cornerRadius:5.0f];
Если вы хотите, чтобы все ваши строки поиска были определенным цветом, выполните следующие действия:
// Put this in your app delegate didFinishLaunchingWithOptions method
// Whatever color you want for searchBarColor
if ([[[UIDevice currentDevice] systemVersion] floatValue] >= 7) { // For iOS 7
UIColor *searchBarColor = [UIColor blueColor];
[[UISearchBar appearance] setBackgroundColor:searchBarColor];
}
Если вы хотите, чтобы конкретный фон в строке поиска был цветом:
// Set it in your viewDidLoad method of your controller
// Replace the yourSearchBar property with whatever you're doing to instantiate the search bar
if ([[[UIDevice currentDevice] systemVersion] floatValue] >= 7) { // For iOS 7
{
UIColor *searchBarColor = [UIColor blueColor];
self.yourSearchBar.backgroundColor = searchBarColor;
}