【发布时间】:2016-02-07 22:12:37
【问题描述】:
所以我的设置:
我有一个使用 Parse 设置的应用程序,我使用的是 PFQueryTableViewController。我在屏幕上添加了UISearchBar。我已经设置好这个搜索并且工作正常。
问题:为了让用户更清楚地看到正在执行搜索,我想添加一个UIActivityIndicator,以便他们可以看到正在加载的内容。我也会beginIgnoringInteractionEvents(),所以他们在搜索完成之前不能使用该应用程序。
我目前遇到了如何使UIActivityIndicator 停止动画以及endIgnoringInteractionEvents() 的问题-我只是无法确定将这段代码放在哪里:
spinningActivityIndicator.stopAnimating()
UIApplication.sharedApplication().endIgnoringInteractionEvents()
我已将UIActivityIndicator 的代码放在func searchBarSearchButtonClicked(searchBar: UISearchBar) 方法中,这样一旦他们在键盘上单击搜索,微调器就会启动。
但是我可以在哪里放置代码以停止动画并再次启用应用程序?
我为 UISearchBar 添加的代码如下:
func searchBarTextDidBeginEditing(searchBar: UISearchBar) {
searchBar.showsCancelButton = true
self.loadObjects()
}
func searchBarTextDidEndEditing(searchBar: UISearchBar) {
// Dismiss the keyboard
searchBar.resignFirstResponder()
// Force reload of table data
self.loadObjects()
}
func searchBarSearchButtonClicked(searchBar: UISearchBar) {
// Dismiss the keyboard
searchBar.resignFirstResponder()
spinningActivityIndicator = UIActivityIndicatorView(frame: CGRectMake(0, 0, 50, 50))
spinningActivityIndicator.center = self.view.center
spinningActivityIndicator.hidesWhenStopped = true
spinningActivityIndicator.activityIndicatorViewStyle = UIActivityIndicatorViewStyle.Gray
view.addSubview(spinningActivityIndicator)
spinningActivityIndicator.startAnimating()
UIApplication.sharedApplication().beginIgnoringInteractionEvents()
searchBar.showsCancelButton = false
// Force reload of table data
self.loadObjects()
}
func searchBarCancelButtonClicked(searchBar: UISearchBar) {
// Clear any search criteria
searchBar.text = ""
// Dismiss the keyboard
searchBar.resignFirstResponder()
// Force reload of table data
self.loadObjects()
}
我在func queryForTable() -> PFQuery 中添加了:
if filmSearchBar.text != "" {
query.whereKey("FilmName", containsString: filmSearchBar.text!)
}
提前致谢!
【问题讨论】:
-
那么您的搜索实际上在做什么,执行对服务器的调用或只是过滤本地数据源?
-
从哪里获得搜索结果?因为这是你停止活动指示器的地方
-
@dzk 是的,我相信是的。这是我第一次使用
UISearchBar。如果有帮助,我会继续学习本教程:blog.bizzi-body.com/2015/03/08/… - 他们将搜索部分添加到页面的一半左右。 -
跟
UISearchBar没多大关系,和你完成self.loadObjects()有关。如果这是一个耗时的过程,请在完成该过程后进行。
标签: ios swift uisearchbar uiactivityindicatorview