Table 使用幻灯片刷新时单元格重复
Table cells duplicating when using slide to refresh
在我的 RSS table 上使用幻灯片刷新功能时,单元格重复显示旧 RSS 数据之后的最新更新。我的意思是,刷新后数据被添加到 table 但旧单元格不会先被删除。
我的代码:
override func viewDidLoad() {
super.viewDidLoad()
// Do any additional setup after loading the view.
// pull to refresh
refreshControl.addTarget(self, action: #selector(ListViewController.uiRefreshControlAction), forControlEvents: UIControlEvents.ValueChanged)
self.myTableView.addSubview(refreshControl);
// set tableview delegate
self.myTableView.dataSource = self
self.myTableView.delegate = self
}
func uiRefreshControlAction() {
self.refreshControl.beginRefreshing()
if let rssURL = NSURL(string: RSS_FEED_URL) {
// fetch rss content from url
self.myParser = NSXMLParser(contentsOfURL: rssURL)!
// set parser delegate
self.myParser.delegate = self
self.myParser.shouldResolveExternalEntities = false
// start parsing
self.myParser.parse()
}
self.myTableView.reloadData()
self.refreshControl.endRefreshing()
}
在刷新 tableView 时添加新的之前,您应该从 rssRecordList 数组中删除所有以前获取的 rss 提要。
func uiRefreshControlAction() {
refreshControl.beginRefreshing()
rssRecordList.removeAll()
...
}
在我的 RSS table 上使用幻灯片刷新功能时,单元格重复显示旧 RSS 数据之后的最新更新。我的意思是,刷新后数据被添加到 table 但旧单元格不会先被删除。
我的代码:
override func viewDidLoad() {
super.viewDidLoad()
// Do any additional setup after loading the view.
// pull to refresh
refreshControl.addTarget(self, action: #selector(ListViewController.uiRefreshControlAction), forControlEvents: UIControlEvents.ValueChanged)
self.myTableView.addSubview(refreshControl);
// set tableview delegate
self.myTableView.dataSource = self
self.myTableView.delegate = self
}
func uiRefreshControlAction() {
self.refreshControl.beginRefreshing()
if let rssURL = NSURL(string: RSS_FEED_URL) {
// fetch rss content from url
self.myParser = NSXMLParser(contentsOfURL: rssURL)!
// set parser delegate
self.myParser.delegate = self
self.myParser.shouldResolveExternalEntities = false
// start parsing
self.myParser.parse()
}
self.myTableView.reloadData()
self.refreshControl.endRefreshing()
}
在刷新 tableView 时添加新的之前,您应该从 rssRecordList 数组中删除所有以前获取的 rss 提要。
func uiRefreshControlAction() {
refreshControl.beginRefreshing()
rssRecordList.removeAll()
...
}