我在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>;
}
}
答案 0 :(得分:0)
这是iOS11的tableView内部错误,请参阅此处的链接了解详细信息,https://forums.developer.apple.com/thread/88190希望苹果尽快解决。
答案 1 :(得分:0)
TL; DR-查看是否在两次滑动之间对数据进行了某些操作(例如重新加载)。
当我滑动删除一个单元格(使其处于编辑模式-可见删除操作),然后尝试滑动另一个单元格时,我遇到了类似的问题,导致我的应用程序崩溃了。就我而言,这是因为在这些滑动之间重新加载表数据。
对willBeginEditingRowAtIndexPath
对象的滑动删除手势调用didEndEditingRowAtIndexPath
和UITableViewDelegate
方法。在后者中,我称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解决刷卡问题。