tableview trailingSwipeActionsConfigurationForRow在ios11中破解

时间:2017-09-28 02:27:29

标签: tableview ios11

我在IOS11中使用trailingSwipeActionsConfigurationForRowAt,但是当刷卡多次然后应用程序破解。

class Counter extends React.Component {
    constructor(props) {
        super(props);
        this.state = {count: 0};

        setInterval((() => {
            this.setState(previousState => ({ 
                count: previousState.count + 1 }));
        }), 1000);
    }

    render() {
        return <h1>{this.state.count}</h1>;
    }
}

和一些错误

class Counter extends React.Component {
    constructor(props) {
        super(props);
        this.count = 0;

        setInterval((() => {
            this.count += 1;
            this.setState({})
        }), 1000);
    }

    render() {
        return <h1>{this.count}</h1>;
    }
}

4 个答案:

答案 0 :(得分:0)

这是iOS11的tableView内部错误,请参阅此处的链接了解详细信息,https://forums.developer.apple.com/thread/88190希望苹果尽快解决。

答案 1 :(得分:0)

TL; DR-查看是否在两次滑动之间对数据进行了某些操作(例如重新加载)。


当我滑动删除一个单元格(使其处于编辑模式-可见删除操作),然后尝试滑动另一个单元格时,我遇到了类似的问题,导致我的应用程序崩溃了。就我而言,这是因为在这些滑动之间重新加载表数据。

willBeginEditingRowAtIndexPath对象的滑动删除手势调用didEndEditingRowAtIndexPathUITableViewDelegate方法。在后者中,我称tableView.reloadData()。当我滑动删除其他单元格时,我为第一个单元格调用了didEndEditingRowAtIndexPath方法(也正在重新加载数据),并且在该系统为另一个单元格调用了willBeginEditingRowAtIndexPath之后,数据不同步并且UIKit崩溃。

当我删除以didEndEditingRowAtIndexPath方法重新加载数据的代码时,我的应用程序将不再崩溃:)

答案 2 :(得分:0)

您需要实现tableView(_:editActionsForRowAt:)

作为最小值,返回空数组,但不返回nil

override func tableView(_ tableView: UITableView, editActionsForRowAt indexPath: IndexPath) -> [UITableViewRowAction]? {
    return []
}

答案 3 :(得分:0)

我只是使用UIViewController + UITableViewDataSource和UITableViewDelegate组合,而不是使用UITableViewController解决刷卡问题。