首页 > 解决方案 > 使用长按切换

问题描述

我想使用长按手势来切换 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
    }
}

任何想法表示赞赏!

标签: iosswiftuilongpressgesturerecogni

解决方案


首先,您需要将所有代码移动到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()
        }
    }
}

推荐阅读