ios - 使用长按切换
问题描述
我想使用长按手势来切换 tableView 的 .isHidden 属性。我的代码(如下)使 tableView 在第一次长按时出现,但在第二次长按时不会隐藏它。
let recognizer = UILongPressGestureRecognizer()
var hideTableView = true
@IBAction func longPress(_ sender: Any) {
if recognizer.state == .began {
hideTableView = !hideTableView
}
if hideTableView {
tableView.isHidden = false
tableView.reloadData()
}
if !hideTableView {
tableView.isHidden = true
}
}
任何想法表示赞赏!
解决方案
首先,您需要将所有代码移动到if recognizer.state == .began {
块内。
接下来,摆脱hideTableView
财产。只需切换isHidden
表格视图的属性。然后重新加载是false
在切换之后。
@IBACTION func longPress(_ gesture: UILongPressGestureRecognizer) {
if gesture.state == .began {
tableView.isHidden = !tableView.isHidden
if !tableView.isHidden {
tableView.reloadData()
}
}
}
推荐阅读
- java - Saga 条目表/ Sagas 集合仍然为空
- javascript - 使用 Angular js 防止 microsoft edge 中的 OPEN 文件提示
- rust - 如何修复错误 E0277: trait bound `[usize]: std::marker::Sized` 不满足?
- c# - '' 是命名空间,但用作类型
- php - 无法从高级自定义字段输出 ('text_field,)
- c# - Xamarin Forms - 如何在列表视图(itemtapped)中获取标签的值/文本?
- firefox - 应用程序在 Firefox 52 中运行,但在 Firefox 61 中它被冻结显示错误
- java - 结合 MDB、JPA 和 JTA
- laravel - 在我的路线中使用重定向后,不再加载字体 awsome 和 ionicons
- php - 显示警告的插件页面:call_user_func_array() 需要参数 1