簡體   English   中英

iOS13 - 帶有自定義 hidesSearchBarWhenScrolling 行為的 UITableView + UISearchController

[英]iOS13 - UITableView + UISearchController with custom hidesSearchBarWhenScrolling behavior

在 iOS 13 上,如果將hidesSearchBarWhenScrolling設置為 true,視圖控制器將隱藏搜索欄,您必須向下滾動才能顯示它。 如果您將其設置為false則它會立即顯示並且不會消失。

我認為這是一種合理的行為,假設最終用戶都熟悉 Apple 產品的工作方式。 鑒於情況似乎並非如此,我想在第一次訪問時顯示搜索欄,但是如果用戶開始向上滾動,搜索欄將被隱藏。 所以這是真/假的混合行為。

這適用於 iOS12,我在viewDidAppear設置了hidesSearchBarWhenScrolling = true ,但現在在 iOS 13 上並非如此。 表格滾動,但搜索欄保持在頂部,而不是與表格視圖一起滾動(順便說一句,這只是因為屏幕沒有再次呈現)。

知道如何去做嗎? 我嘗試更改 tableview 的內容偏移量,但真的沒有運氣。

對我來說,它在viewDidLoad()方法中添加以下行后起作用:

navigationController!.navigationBar.sizeToFit()

無需指定hidesSearchBarWhenScrolling因為我認為默認情況下它是true ,但是如果您仍然看到搜索欄,那么您可以將其設置為true以隱藏它。

我遇到了和你一樣的問題,看起來這個問題只出現在 iOS 13 中。 在 iOS 14 中,您的解決方案完美運行。 要使其在 iOS 13 中工作,您需要添加

self.navigationItem.hidesSearchBarWhenScrolling = true
self.navigationController?.view.setNeedsLayout() // add this line

viewDidAppear

它適用於模擬器 iOS 13.7 我希望它也適用於你。

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM