Swift 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)
}
更多关于可编辑内容的信息可以在这里找到。
感谢上帝他们更新了他们的框架和文档!干杯!将以下代码添加到didFinishLaunchingWithOptions中
UINavigationBar.appearance().tintColor = UIColor.whiteColor()
if #available(iOS 9.0, *) {
UITextField.appearanceWhenContainedInInstancesOfClasses([UISearchBar.self]).defaultTextAttributes = [NSForegroundColorAttributeName: UIColor.whiteColor()]
} else {
// Fallback on earlier versions
}
更改 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 Maps API时遇到了同样的问题,通过以下代码解决了:
[[UITextField appearanceWhenContainedIn:[<Object of your Google Maps API class(like GMSAutocompleteViewController)>.searchDisplayController.searchBar class], nil] setDefaultTextAttributes:@{NSForegroundColorAttributeName:[UIColor whiteColor]}];
通过其视图属性,可以访问视图控制器的视图,该属性只是一个常规的UIView。UIView具有backgroundColor属性,它是一个UIColor并控制视图的颜色。
这里是一个更改背景颜色的示例代码:
self.view.backgroundColor = UIColor.yellowColor()