导航栏 + 搜索控制器 + 大标题:滚动时的细线
Posted
技术标签:
【中文标题】导航栏 + 搜索控制器 + 大标题:滚动时的细线【英文标题】:Navigation bar + Search controller + Large title: Hairline during scrolling 【发布时间】:2019-02-03 15:46:57 【问题描述】:上下文:
UINavigationController
和 UITableViewController
导航栏中的UISearchController
导航栏半透明,黑色风格,使用大标题,tintColor
,barTintColor
(所以没有背景图片)。
问题:
我有一个奇怪的动画故障,在搜索栏上方显示了一条细线。细线仅在滚动期间出现。
我已经尝试了很多解决类似问题的方法,但都没有帮助。
在装有 ios 12.1.3 的 iPhone 7 上测试
【问题讨论】:
【参考方案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
【讨论】:
首先我使用UISearchController
而不是UISearchDisplayController
,无论如何,谢谢,但它没有帮助。此外,self.hairlineImageView
属性是什么?
搜索栏边框没有帮助,因为上面出现了细线,请打开duaw26jehqd4r.cloudfront.net/items/3y1p3j252B1Z3912422V/…图片查看hairlineImageView
已找到并隐藏,但问题依旧。到目前为止观察到没有问题的唯一方法是将导航栏设置为不透明。
***.com/questions/38355288/… 为最少的解决方案,您可以尝试更改底部发际线颜色。以上是关于导航栏 + 搜索控制器 + 大标题:滚动时的细线的主要内容,如果未能解决你的问题,请参考以下文章
iOS 11.2 - 在带有大标题的导航栏中时,搜索控制器栏背景清晰