语境:
UINavigationController
UITableViewController
UISearchController
导航栏tintColor
,barTintColor
(所以没有背景图片)。问题:
我有一个奇怪的动画故障,显示搜索栏上方发际线。发际线只在滚动出现。
我已经尝试了多种解决方案,有关类似的问题,但他们并没有帮助。
与iPhone 7与iOS 12.1.3测试的
您可以使用此解决发际线问题
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
}
}