我有一個表格視圖,頂部有一個搜索欄。我的要求是當有人打開頁面時不顯示搜索欄,但是當有人滑下桌面時,應該可以看到搜索欄。僅當用戶將表格下拉時才顯示搜索欄
11
A
回答
22
在您的控制器的viewDidAppear:
方法中,設置您的表視圖的contentOffset屬性(在UIScrollView中)以隱藏搜索欄。
- (void)viewDidAppear:(BOOL)animated{
[super viewDidAppear:animated];
self.tableView.contentOffset = CGPointMake(0, SEARCH_BAR_HEIGHT);
}
4
相關的murat's answer,這裏有一個更便攜和正確的版本將與動畫抵消的觀點負載做掉(它假定在搜索欄中有一個名爲searchBar
出口屬性):
- (void)viewWillAppear:(BOOL)animated
{
self.tableView.contentOffset = CGPointMake(0, self.searchBar.frame.size.height);
}
更新:
爲了適應點擊索引節中的搜索圖標,需要實現以下方法,它將恢復內容偏移:
- (NSInteger)tableView:(UITableView *)tableView sectionForSectionIndexTitle:(NSString *)title
atIndex:(NSInteger)index
{
index--;
if (index < 0) {
[tableView
setContentOffset:CGPointMake(0.0, -tableView.contentInset.top)];
return NSNotFound;
}
return index;
}
相關問題
- 1. 隱藏視圖僅當用戶拉下時才顯示屏幕
- 2. 當選擇搜索欄時顯示searchDisplayController.searchResultsTableView
- 3. 僅當啓用Javascript時才顯示錶格
- 4. 僅當用戶空閒X時間時才顯示DIV
- 5. 僅當用戶滾動時纔將數據拉入collectionView?
- 6. 護欄下拉搜索/過濾搜索
- 7. 僅當用戶關閉警報後才顯示下一屏幕
- 8. Xamarin拉下搜索欄
- 9. 下拉列表中的搜索欄
- 10. 僅當在iOS中滾動時才顯示導航欄
- 11. 僅當狀態欄展開時才顯示Android通知
- 12. 如何在單擊搜索欄時顯示錶格視圖?
- 13. 僅當用戶需要時才顯示Firebase通知
- 14. 僅當用戶未登錄時才顯示註銷
- 15. 僅當isAdmin爲真時才顯示在線用戶
- 16. 僅當用戶登錄時才顯示彈出窗口
- 17. 僅當某些用戶登錄時才顯示某些數據
- 18. 僅當用戶在特定頁面上時才顯示部分
- 19. 僅當用戶註銷時才顯示的登錄頁面
- 20. 帶有jquery下拉菜單的搜索欄顯示搜索結果
- 21. 導航下的Bootstrap顯示搜索欄
- 22. 僅當在Angular(Ng-Repeat)中找到匹配項時才顯示搜索結果
- 23. 僅當選擇「是」時纔在Magento Frontend中顯示是/否下拉屬性
- 24. 顯示最近搜索的項以下搜索表格
- 25. 當使用工具欄搜索和分組時,rownnumber不顯示
- 26. 搜索通過下拉顯示在asp.net
- 27. 如何在用戶點擊搜索欄時顯示tableview
- 28. 僅當用戶將元素懸停幾秒鐘時才顯示div
- 29. 搜索顯示控制器搜索欄
- 30. 僅顯示下拉列表中匹配的搜索模式項ajaxToolkit:ListSearchExtender
使用viewDidAppear:可以導致contentOffset更改顯着發生在應用程序的用戶身上。使用viewWillAppear:將在向用戶顯示任何內容之前進行更改。 – Shoerob
你也可以在'viewDidLoad'中做到這一點,一開始就做一次,並且在返回視圖時(例如在'UINavigationController'中),仍然記得你在tableView中的位置。 – devios1