【问题标题】:Table cells duplicating when using slide to refresh使用幻灯片刷新时表格单元格重复
【发布时间】:2016-03-28 02:31:41
【问题描述】:

在我的 RSS 表上使用幻灯片刷新功能时,单元格会重复显示旧 RSS 数据之后的最新更新。我的意思是,刷新后数据被添加到表中,但旧单元格没有首先被删除。
我的代码:

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()
}

【问题讨论】:

  • 在调用 remove 方法后尝试 tableView.reloadData
  • @CaffeineShots 对不起,我已经有了,但我忘了把它添加到我的帖子中。
  • 在哪里填写您在表格视图中提供的数组以显示数据
  • @Pyro 抱歉,您的评论让我有些困惑。
  • 在表格视图中,您在numberOfRowsInSectioncellForRowAtIndexPath 中传递了一些数组或值,您在哪里填写此值以显示在表格视图中?

标签: ios xcode swift uitableview pull-to-refresh


【解决方案1】:

您应该在刷新 tableView 时添加新的之前从 rssRecordList 数组中删除所有以前获取的 rss 提要。

func uiRefreshControlAction() {
  refreshControl.beginRefreshing()
  rssRecordList.removeAll()
  ...
}

【讨论】:

  • 这解决了这个问题。谢谢!
猜你喜欢
  • 1970-01-01
  • 2011-10-28
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2023-03-11
  • 1970-01-01
  • 1970-01-01
相关资源
最近更新 更多