Ios 删除导航栏和工具栏的边框
我在移除UISearchBar、UINavigationBar和UIToolBar的边界阴影时遇到问题。因此,基本上我有一个视图控制器,其中嵌入了一个UISearchController,下面是一个UIToolbar,其中包含一个UISegmentedControl。问题是,即使使用appearance()委托分别移除UINavigationBar、UISearchBar和UIToolbar的边框阴影,边框仍会显示在UISearchBar和UIToolbar之间 当我转到下一个屏幕时,我观察到UINavigationBar没有边框阴影,因此,可以确定显示的边框不是UINavigationBarIos 删除导航栏和工具栏的边框,ios,swift,Ios,Swift,我在移除UISearchBar、UINavigationBar和UIToolBar的边界阴影时遇到问题。因此,基本上我有一个视图控制器,其中嵌入了一个UISearchController,下面是一个UIToolbar,其中包含一个UISegmentedControl。问题是,即使使用appearance()委托分别移除UINavigationBar、UISearchBar和UIToolbar的边框阴影,边框仍会显示在UISearchBar和UIToolbar之间 当我转到下一个屏幕时,我观察到U
extension AppDelegate {
private func appearanceSetup() {
UINavigationBar.appearance().barTintColor = .appBlueColor
UINavigationBar.appearance().shadowImage = UIImage()
UINavigationBar.appearance().titleTextAttributes = [NSAttributedString.Key.foregroundColor : UIColor.white]
UITextField.appearance().tintColor = .appBlueColor
UISearchBar.appearance().setBackgroundImage(UIImage(), for: .any, barMetrics: .default)
UISearchBar.appearance().barTintColor = .appBlueColor
UISearchBar.appearance().backgroundImage = UIImage()
UIToolbar.appearance().setShadowImage(UIImage(), forToolbarPosition: .any)
UIToolbar.appearance().barTintColor = .appBlueColor
UIToolbar.appearance().layer.borderWidth = 1
UIToolbar.appearance().layer.borderColor = UIColor.appBlueColor.cgColor
}
}
我还发现了一件奇怪的事情,当我从UINavigationBar隐藏UISearchController时,UINavigationBar和UIToolBar之间没有边界。当我隐藏UIToolBar时,UINavigationBar之后也没有边框
extension AppDelegate {
private func appearanceSetup() {
UINavigationBar.appearance().barTintColor = .appBlueColor
UINavigationBar.appearance().shadowImage = UIImage()
UINavigationBar.appearance().titleTextAttributes = [NSAttributedString.Key.foregroundColor : UIColor.white]
UITextField.appearance().tintColor = .appBlueColor
UISearchBar.appearance().setBackgroundImage(UIImage(), for: .any, barMetrics: .default)
UISearchBar.appearance().barTintColor = .appBlueColor
UISearchBar.appearance().backgroundImage = UIImage()
UIToolbar.appearance().setShadowImage(UIImage(), forToolbarPosition: .any)
UIToolbar.appearance().barTintColor = .appBlueColor
UIToolbar.appearance().layer.borderWidth = 1
UIToolbar.appearance().layer.borderColor = UIColor.appBlueColor.cgColor
}
}
有一次我遇到了类似的问题,
的出现并没有解决我的问题。所以我开始定制组件。我这样做是为了UINavigationBar
,它工作了,尽管我的UINavigationBar
被放在了故事板中,没有在代码中,但它仍然工作得很好。试试这个,让我知道:
class CustomNavigationBar: UINavigationBar
{
override init(frame: CGRect) {
super.init(frame: frame)
setBackgroundImage(UIImage(), for: .default)
shadowImage = UIImage()
backgroundColor = <Your UIView.backgoundColor of type: UIColor>
tintColor = UIColor.white
}
required init?(coder aDecoder: NSCoder) {
super.init(coder: aDecoder)
setBackgroundImage(UIImage(), for: .default)
shadowImage = UIImage()
backgroundColor = <Your UIView.backgoundColor of type: UIColor>
tintColor = UIColor.white
}
}
试试这段代码,我希望它能解决您的问题{
override func viewDidLoad() {
super.viewDidLoad()
//MARK:- for default navigation bar
self.navigationItem.backBarButtonItem = UIBarButtonItem(title: " ", style: .plain, target: nil, action: nil)
self.navigationItem.backBarButtonItem?.tintColor = UIColor.white
self.navigationController?.navigationBar.setBackgroundImage(UIImage(), for:.default)
self.navigationController?.navigationBar.shadowImage = UIImage()
self.navigationController?.navigationBar.layoutIfNeeded()
}
super.viewDidLoad()
好问题。提供一个小样本应用程序的链接,我们可以在其中看到问题/尝试看看这是我刚刚创建的演示,请克隆并查看一下。非常感谢@Habin。不知道导航栏的此类属性。我想知道这个属性是如何被披露的,因为它们不是ava我可以在开发者文档上下载吗?欢迎@RajatMishra。你的问题解决了吗?如果解决了,请投票并打勾,以便其他人可以找到答案。我在我的问题解决后进行了投票。但它说“声誉低于15的人所投的票会被记录,但不会改变公开显示的帖子分数。”我的意思是你已经对你的问题投了票,但用户如何知道哪个答案对你的问题是正确的,所以我要你投票并在正确答案上打勾。谢谢你。明白了。谢谢!谢谢你回来。我使用UISearchController的方法是独立的。我的意思是,UISearchCo下面的UISegmentedControl无论UISearchController是什么,都需要显示controller.ScopeButtonTiles不可能做到这一点,因为只有当UISearchController处于活动状态时,才会显示作用域按钮。好的,感谢您抽出时间来写。我将向您的问题发送一些要点。祝您好运如果您回答了一个问题,请尝试对您的答案进行简短描述。请参阅此处,
self.navigationController?.navigationBar.setValue(true, forKey: "hidesShadow")
override func viewDidLoad() {
super.viewDidLoad()
//MARK:- for default navigation bar
self.navigationItem.backBarButtonItem = UIBarButtonItem(title: " ", style: .plain, target: nil, action: nil)
self.navigationItem.backBarButtonItem?.tintColor = UIColor.white
self.navigationController?.navigationBar.setBackgroundImage(UIImage(), for:.default)
self.navigationController?.navigationBar.shadowImage = UIImage()
self.navigationController?.navigationBar.layoutIfNeeded()
}
//MARK:- for default navigation bar
self.navigationItem.backBarButtonItem = UIBarButtonItem(title: " ", style: .plain, target: nil, action: nil)
self.navigationItem.backBarButtonItem?.tintColor = UIColor.white
self.navigationController?.navigationBar.setBackgroundImage(UIImage(), for:.default)
self.navigationController?.navigationBar.shadowImage = UIImage()
self.navigationController?.navigationBar.layoutIfNeeded()
}