我是新来的迅速。我的应用使用人们上传到网络并在表格视图中显示照片的照片。
每当某些用户上传新照片时,它就会重新加载。
我有一个UITextField,当您按下它时键盘会上升。我的问题是,每当reloadView发生时(当新照片到达时)它都会掉下来
我正在尝试做的是检查UITextField是否是第一个识别器,如果是的话,我想等待重载,直到它不是第一个识别器。
func refreshView()
{
dispatch_async(dispatch_get_main_queue()) { () -> Void in
while (self.dataSource.writeSomethingTextLabel.isFirstResponder()) {
//need to wait somehow for notification that it is not first responder anymore
}
self.tableView.reloadData()
}
}
因此,使用此代码,键盘当然不会掉下来,但是运行了循环循环,一切都停滞了。我的问题是我如何才能等到用户完成使用文本标签(第一响应者为假)。
谢谢
最佳答案
您可以在两个位置有条件地重新加载tableView
:新数据到达时和textField
结束编辑时:
@class YourViewController: UIViewController, UITextFieldDelegate {
var needsToReloadTableView = false;
func reloadTableViewIfNeeded() {
if needsToReloadTableView {
self.tableView.reloadData()
needsToReloadTableView = false
}
}
func gotNewData() {
needsToReloadTableView = true
if !self.textField.isFirstResponder {
reloadTableViewIfNeeded()
}
}
func textFieldDidEndEditing(textField:UITextField) {
reloadTableViewIfNeeded()
}
}
关于ios - 如何快速等待文本标签的firstResponder为false,我们在Stack Overflow上找到一个类似的问题:https://stackoverflow.com/questions/30211213/