Google карты автозаполнения изменить цвет
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()