所以我的设置:
我已经使用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!)
}
提前致谢!
答案 0 :(得分:1)
我刚查看了PFQueryTableViewController
的一些文档,并且方法objectsDidLoad()
似乎很有希望。因此,请尝试在queryForTable()
函数下面添加:
override func objectsDidLoad(error: NSError?) {
super.objectsDidLoad(error)
// Your code here to stop the UIActivityIndicator
}
您可以在函数中添加print("objectsDidLoad")
以查看它是否有效。