免责声明:我对 Swift 相当陌生,并且没有开发人员背景 - 所以请耐心等待我解释这个问题。我正在使用 Swift 4、Xcode 9
我需要在我的应用程序中使用的 UISearchBar
上提供自动建议功能 - 为此我使用了 ModernSearchBar图书馆。它对我来说工作得很好,但最近我编辑了 UISearchBar
代码,使其移动到页面顶部,并且有更大的区域可供用户查看其中的建议。但我目前面临this issue - 因此,虽然 UISearchBar
按预期上升,但建议列表却没有。我知道这个问题是这个库特有的,但如果有人指出我在这方面的正确方向,我将不胜感激。
ModernSearchBar 本身是对应用程序的一个非常巧妙的补充,否则我想保留它(如果可能的话)。但请告诉我是否应该考虑放弃它并自己构建 UI。
最佳答案
于是找到了一个相对简单的解决方案——文件ModernSearchBar.swift
库中有一个名为 configureViews()
的函数设置 UITableView
的属性(这是建议列表)。我编辑了searchBar(_ searchBar: UISearchBar, textDidChange searchText: String)
函数并添加了这一行 if self.suggestionsView.frame.height == 0.0 { self.configureViews() }
到它。这有效,即建议 ListView 也更新为 UISearchBar
正如预期的那样,排名第一。而且由于框架高度的限制,它也不会多次更新位置。
更新:
我遇到的另一个问题是,如果我搜索一个单词并返回到上一页,搜索结果 View 每次都会稍微向上移动并开始覆盖 UISearchBar
部分,然后就离开了视野。当我删除 keyboardWillShow(notification: NSNotification)
中更新建议列表大小的代码后,问题得到解决。函数在同一个文件中。不确定其原因,但现在它在手机和模拟器上运行良好。
关于ios - 如果单击 UISearchBar,则更改 UITableView 位置 : [using ModernSearchBar],我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/50498659/