如果单击UISearchBar,则更改UITableView位置:[using ModernSearchBar]

时间:2018-05-23 23:04:26

标签: ios swift uitableview uisearchbar

免责声明:我对Swift来说相当新,并且来自非开发人员背景 - 所以在解释这个问题时请耐心等待。我使用的是Swift 4,Xcode 9

我需要UISearchBar我在我的应用中使用自动推荐功能 - 我已使用ModernSearchBar库。它一直很适合我,但最近我编辑了我的UISearchBar代码,以便它移动到页面顶部,并且有更大的区域可供用户查看其中的建议。但我目前正面临this issue - 所以当UISearchBar按预期上升时,建议列表却没有。我知道这个问题对于这个库非常具体,但是如果有人指出我正确的方向,我会非常感激。

ModernSearchBar本身对应用程序是一个非常简洁的补充,如果可能的话我想保留它。但是,如果我应该考虑远离它并自己构建UI,请告诉我。

1 个答案:

答案 0 :(得分:0)

因此找到了一个相对简单的解决方案 - 库中的文件ModernSearchBar.swift有一个名为configureViews()的函数,用于设置UITableView(建议列表)的属性。我编辑了searchBar(_ searchBar: UISearchBar, textDidChange searchText: String)函数,并将此行if self.suggestionsView.frame.height == 0.0 { self.configureViews() }添加到其中。这很有效,即建议列表视图也按预期更新到UISearchBar的最高位置。并且由于帧高度约束,它也不会多次更新位置。

<强>更新 我遇到的另一个问题是,如果我搜索了一个单词并返回到上一页,搜索结果视图每次都会稍微向上移动并开始覆盖UISearchBar部分,然后退出视图。在我删除代码以在同一文件中的keyboardWillShow(notification: NSNotification)函数中更新建议列表大小后,问题得到了解决。不确定这个的原因,但现在它在手机和模拟器上工作正常。