2016-02-17 5 views
1

Я использую GMSPlacePicker в своем приложении. Он имеет довольно простой API:Изменение цвета текста поиска в GMSPlacePicker

CLLocationCoordinate2D center = currentLocation.coordinate; 
CLLocationCoordinate2D northEast = CLLocationCoordinate2DMake(center.latitude + 0.02, center.longitude + 0.02); 
CLLocationCoordinate2D southWest = CLLocationCoordinate2DMake(center.latitude - 0.02, center.longitude - 0.02); 
GMSCoordinateBounds *viewport = [[GMSCoordinateBounds alloc] initWithCoordinate:northEast 
                      coordinate:southWest]; 
GMSPlacePickerConfig *config = [[GMSPlacePickerConfig alloc] initWithViewport:viewport]; 
_placePicker = [[GMSPlacePicker alloc] initWithConfig:config]; 

[_placePicker pickPlaceWithCallback:^(GMSPlace *place, NSError *error) { 

}]; 

Он автоматически отображается на дисплее ViewController на дисплее в данный момент. Существует также функция поиска, которая позволяет пользователю искать место с помощью текста.

Однако, мое приложение тема черного цвета, и я установить панель навигации цвет с помощью UIAppearance прокси:

[[UINavigationBar appearance] setBarTintColor:[UIColor blackColor]]; 
[[UINavigationBar appearance] setTranslucent:NO]; 

Что вызывает проблему поиска в строке поиска не может рассматриваться в качестве навигационной панели фон черный.

enter image description here

Я также попытался использовать прокси UIAppearance как предложено here никакого эффекта.

[[UITextField appearanceWhenContainedIn:[UISearchBar class], nil] setTextColor:[UIColor whiteColor]]; 

ответ

2

Это помогло мне:

[[UISearchBar appearance] setBarStyle:UIBarStyleBlack] 
+0

Спасибо! Это сделало текст серым цветом ... который не идеален, но, по крайней мере, я могу его прочитать сейчас. – ZeMoon

0
[[UITextField appearanceWhenContainedIn:[UISearchBar class], nil] setTintColor:[UIColor whiteColor]]; 
+0

Это не сработало. – ZeMoon

0

я сталкиваюсь такая же проблема при работе с API Карт Google и нашел свое решение, в следующей строке кода:

[[UITextField appearanceWhenContainedIn:[<Object of your Google Maps API class(like GMSAutocompleteViewController)>.searchDisplayController.searchBar class], nil] setDefaultTextAttributes:@{NSForegroundColorAttributeName:[UIColor whiteColor]}]; 

Добавьте строку выше, после того как вы создадите объект своего класса API Карт Google и перед тем, как представить класс.

Принятый ответ выше также будет работать для этого сценария и заметен, но эта строка кода сделает черный цвет по умолчанию для текста в строке поиска.

Используя мой ответ, можно изменить цвет текста на любой пользовательский цвет, доступный в iOS.