gpt4 book ai didi

swift - 如何删除 iOS 11 上 UISearchController 下的行?

转载 作者:可可西里 更新时间:2023-11-01 00:56:23 25 4
gpt4 key购买 nike

如何在 iOS 11 上删除 UISearchController 下的行?

我使用以下代码添加了 UISearchController:

navigationItem.searchController = searchController

但是这样做之后下面有一条奇怪的线:

enter image description here

如有任何关于如何删除线条或至少选择其颜色的建议,我们将不胜感激。

最佳答案

这是另一种解决方案,一个较弱的解决方案,但它在特定用例中可能很有用。

extension UISearchController {

var hairlineView: UIView? {
guard let barBackgroundView = self.searchBar.superview?.subviews.filter({ String(describing: type(of: $0)) == "_UIBarBackground" }).first
else { return nil }

return barBackgroundView.subviews.filter({ $0.bounds.height == 1 / self.traitCollection.displayScale }).first
}
}

使用该扩展,您只需在 View Controller 的 viewWillLayoutSubviews 方法中编写以下代码:

override func viewWillLayoutSubviews() {
super.viewWillLayoutSubviews()

// Remove hairline from the searchBar.
self.navigationItem.searchController?.hairlineView?.isHidden = true
}

重要:

请注意,此解决方案非常薄弱,可能会随着 future 的 iOS 更新而中断。
此外,$0.bounds.height == 1/self.traitCollection.displayScale 是不安全的,我建议您使用 a proper float comparison method .

关于swift - 如何删除 iOS 11 上 UISearchController 下的行?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/46809894/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com