开始编辑 UISearchbar 会更改 UINavigationbar 颜色
Begin editing of UISearchbar changes the UINavigationbar color
在 viewcontroller 中,我有搜索栏和表格视图
当我点击搜索栏时,它会将导航栏颜色更改为黑色
我已经更改了导航栏颜色,但它仍然更改导航栏颜色
这是我单击搜索栏时发生的情况
代码如下:
func searchBarTextDidBeginEditing(_ searchBar: UISearchBar) {
self.setTitle("Add users", showBackButton: false, navBGColor: .white, navTitleColor: .black)
}
func setTitle(_ titleStr: String = "", showBackButton: Bool = true, navBGColor: UIColor = UIColor.white, navTitleColor: UIColor = UIColor.black) {
self.title = titleStr
self.hideNavigationBar(false)
self.showBackButton(showBackButton, navTitleColor == .black)
self.changeNavBarAppearance(navBGColor, navTitleColor)
}
func changeNavBarAppearance(_ navColor: UIColor, _ titleColor: UIColor = UIColor.white) {
let titleTextAttribute = [NSAttributedStringKey.font:R.Fonts.AppNavBarFont,
NSAttributedStringKey.foregroundColor : titleColor]
self.navigationController?.navigationBar.tintColor = titleColor
self.navigationController?.navigationBar.barTintColor = navColor
self.navigationController?.navigationBar.isTranslucent = false
self.navigationController?.navigationBar.titleTextAttributes = titleTextAttribute
self.navigationController?.navigationBar.shadowImage = UIImage()
}
我在 viewcontroller 中添加键盘通知观察器时遇到了类似的问题。
我已经在 viewcontroller 中设置了 keyboardWillShow 通知观察器,然后我在上面推了另一个 viewcontroller 而没有删除键盘通知观察器。
当我单击搜索栏时,它会将通知发送到上一个 viewcontroller,在该 viewcontroller 上推送了这个新的 viewcontroller,它正在调用 keyboardWillShow 方法并且我正在更改导航栏颜色。
我删除了键盘的通知观察器,问题已解决
在 viewcontroller 中,我有搜索栏和表格视图
当我点击搜索栏时,它会将导航栏颜色更改为黑色 我已经更改了导航栏颜色,但它仍然更改导航栏颜色
这是我单击搜索栏时发生的情况
代码如下:
func searchBarTextDidBeginEditing(_ searchBar: UISearchBar) {
self.setTitle("Add users", showBackButton: false, navBGColor: .white, navTitleColor: .black)
}
func setTitle(_ titleStr: String = "", showBackButton: Bool = true, navBGColor: UIColor = UIColor.white, navTitleColor: UIColor = UIColor.black) {
self.title = titleStr
self.hideNavigationBar(false)
self.showBackButton(showBackButton, navTitleColor == .black)
self.changeNavBarAppearance(navBGColor, navTitleColor)
}
func changeNavBarAppearance(_ navColor: UIColor, _ titleColor: UIColor = UIColor.white) {
let titleTextAttribute = [NSAttributedStringKey.font:R.Fonts.AppNavBarFont,
NSAttributedStringKey.foregroundColor : titleColor]
self.navigationController?.navigationBar.tintColor = titleColor
self.navigationController?.navigationBar.barTintColor = navColor
self.navigationController?.navigationBar.isTranslucent = false
self.navigationController?.navigationBar.titleTextAttributes = titleTextAttribute
self.navigationController?.navigationBar.shadowImage = UIImage()
}
我在 viewcontroller 中添加键盘通知观察器时遇到了类似的问题。
我已经在 viewcontroller 中设置了 keyboardWillShow 通知观察器,然后我在上面推了另一个 viewcontroller 而没有删除键盘通知观察器。
当我单击搜索栏时,它会将通知发送到上一个 viewcontroller,在该 viewcontroller 上推送了这个新的 viewcontroller,它正在调用 keyboardWillShow 方法并且我正在更改导航栏颜色。
我删除了键盘的通知观察器,问题已解决