SearchBar 和 NavigationBar 之间的空格 - Swift
Posted
技术标签:
【中文标题】SearchBar 和 NavigationBar 之间的空格 - Swift【英文标题】:Blank space between SearchBar and NavigationBar - Swift 【发布时间】:2016-09-27 07:46:09 【问题描述】:我有一个简单的tableViewController
、一个带作用域的searchBar
和一个navigationBar
。
当我点击我的searchBar
时,我会看到我的范围和所有工作。然后我单击一行并转到我的DetailPage
并且搜索栏没有隐藏(我不知道为什么)。
所以我点击取消,然后我返回到我的tableView
。当我返回到我的 tableView 时,我的SearchBar
和我的NavigationBar
之间有一个空格。
这是我的代码:
self.resultSearchController = (
let controller = UISearchController(searchResultsController: nil)
controller.searchResultsUpdater = self
controller.hidesNavigationBarDuringPresentation = true
controller.dimsBackgroundDuringPresentation = false
controller.searchBar.sizeToFit()
controller.searchBar.scopeButtonTitles = ["Title", "Author", "Location", "Price", "User"]
self.tableView.tableHeaderView = controller.searchBar
return controller
)()
func updateSearchResults(for searchController: UISearchController)
let scopes = resultSearchController.searchBar.scopeButtonTitles
let currentScope = scopes![resultSearchController.searchBar.selectedScopeButtonIndex] as String
filterContentForSearchText(searchText: searchController.searchBar.text!, scope: currentScope)
【问题讨论】:
我认为将 ScrollView Insets 调整为 false 对您有用...您的控制器属性检查器取消选中调整 ScrollView Insets 我试过了,结果是一样的 您是否通过登录frames
确定了哪些实体占保证金? (header、insets、searchbar)viewDidLoad
和 viewWill/DidAppear
中的代码有什么区别?
我的 resultSearchController 在我的 viewDidLoad 方法中。我没有 viewWill/DidAppear 方法。搜索栏是问题所在,因为当我点击它时,它会因为我的范围而变大。
设置 SearchBar 位置:( 0 , 24,Width ,Height)
【参考方案1】:
尝试添加
self.automaticallyAdjustsScrollViewInsets = false;
self.extendedLayoutIncludesOpaqueBars = true
在viewDidload
.
【讨论】:
什么都没有。错误是一样的。每次在使用带范围的搜索栏后转到我的详细信息页面时,导航栏和表格视图之间都会添加一个空格 一次尝试在您的主视图中添加一个空标签(在您的搜索栏上方 - 即您的标签应该是视图层次结构中的第一个控件)以上是关于SearchBar 和 NavigationBar 之间的空格 - Swift的主要内容,如果未能解决你的问题,请参考以下文章
UISearchController 出现在 NavigationBar 后面