Google карты автозаполнения изменить цвет

Я ищу изменить цвет GMSAutocompleteViewController

Вот что я получаю:

Скриншот

Я хочу, чтобы текстовое поле было белым с белой кнопкой отмены.

6 ответов

Решение

Свифт 3

@IBAction func searchCityBtn(_ sender: Any) {
        let autocompleteController = GMSAutocompleteViewController()
        autocompleteController.delegate = self
        UINavigationBar.appearance().barTintColor = UIColor(red: 44.0/255, green: 44.0/255, blue: 49.0/255, alpha: 1.0)
        UINavigationBar.appearance().tintColor = UIColor.white

        UISearchBar.appearance().setTextColor(UIColor.white)
        UISearchBar.appearance().barStyle = UIBarStyle.default
        UISearchBar.appearance().setPlaceholderTextColor(.white)
        UISearchBar.appearance().setSearchImageColor(.white)

        self.present(autocompleteController, animated: true, completion: nil)
    }

больше информации о том, что вы можете редактировать здесь.... Слава богу, они обновили свои рамки и док! Ура!

Изменить цвет GMSAutocompleteViewController

Делайте следующие вещи:

Создайте новый класс NSObject, чтобы установить атрибуты UITextField.

.h файл

@interface HelperClass : NSObject

+(void)setTextFieldAttributes;

@end

.m файл

@implementation HelperClass


+(void)setTextFieldAttributes{


    [[UITextField appearanceWhenContainedIn:[UISearchBar class], nil]
     setDefaultTextAttributes:@{NSForegroundColorAttributeName:[UIColor whiteColor]}];
    [[UITextField appearance] setTintColor:[UIColor whiteColor]];

}

@end

а затем в вашем ControllerClass: GMSAutocompleteViewController

UItextFieldGoogleHelperClass.setTextFieldAttributes()

сделает свое дело, работал для меня.

В последнем выпуске Google Places SDK для iOS (1.13) добавлена ​​дополнительная поддержка настройки цветов в GMSAutocompleteViewController, В онлайн-руководстве есть хороший обзор.

Добавьте следующий код внутри didFinishLaunchingWithOptions

UINavigationBar.appearance().tintColor = UIColor.whiteColor()

if #available(iOS 9.0, *) {
   UITextField.appearanceWhenContainedInInstancesOfClasses([UISearchBar.self]).defaultTextAttributes = [NSForegroundColorAttributeName: UIColor.whiteColor()]
} else {
   // Fallback on earlier versions
}

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

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

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

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

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

Доступ к представлению контроллера представления можно получить через его свойство view, которое является просто обычным UIView. У UIView есть свойство backgroundColor, которое является UIColor и контролирует цвет представления.

Вот пример кода для изменения цвета фона:

self.view.backgroundColor = UIColor.yellowColor()
Другие вопросы по тегам