上下文:
UINavigationController
和UITableViewController
UISearchController
在导航栏中tintColor
,barTintColor
(因此没有背景图片)。问题:
我有一个奇怪的动画故障,在搜索栏上方显示一条细线。发际线仅在滚动期间出现。
我已经尝试过许多解决类似问题的方法,但是它们没有帮助。
在装有iOS 12.1.3的iPhone 7上进行了测试
答案 0 :(得分:-1)
您可以使用此方法解决发际线问题
searchController.searchBar.layer.borderColor = UIColor(red: 242/255.0, green: 82/255.0, blue: 46/255.0, alpha: 1).CGColor
searchController.searchBar.layer.borderWidth = 1
如果上述方法无效。您可以完全去除发际线
extension UINavigationBar {
func hideBottomHairline() {
self.hairlineImageView?.isHidden = true
}
func showBottomHairline() {
self.hairlineImageView?.isHidden = false
}
}
extension UIView {
fileprivate var hairlineImageView: UIImageView? {
return hairlineImageView(in: self)
}
fileprivate func hairlineImageView(in view: UIView) -> UIImageView? {
if let imageView = view as? UIImageView, imageView.bounds.height <= 1.0 {
return imageView
}
for subview in view.subviews {
if let imageView = self.hairlineImageView(in: subview) { return imageView }
}
return nil
}
}