首页 > 解决方案 > 如果我的数组中有数据,空的 tableview 标签会闪烁一秒钟

问题描述

嗨,我搜索了堆栈溢出并看到如果没有表视图结果,则在屏幕上显示“无结果”, 这很有用,但不完全是我想要的。我的问题是当我按照这些步骤操作时它可以正常工作。但如果我的 tableview 确实有数据,它会在填充我的数据之前闪烁我的“空 tableview 标签”一两秒。在我看来,这看起来很糟糕。

我有一个通过我的 tableview 上的插座连接的标签,称为 emptyTableViewlbl。这是我的代码被调用。在此先感谢任何帮助。谢谢

extension FeedViewController: UITableViewDataSource, UITableViewDelegate {
func tableView(_ tableView: UITableView, numberOfRowsInSection section: Int) -> Int {

    if posts.isEmpty {
        emptyTableViewLbl.isHidden = false
        emptyTableViewLbl.text = "Empty tableview label"
        return 0
    } else {
        emptyTableViewLbl.isHidden = true
    }
    return posts.count

}

并尝试过

 override func viewDidLoad() {
    super.viewDidLoad()

    tableView.dataSource = self
    tableView.delegate = self
    loadPosts()

    if posts.isEmpty {
        emptyTableViewLbl.isHidden = false
        emptyTableViewLbl.text = "Empty"
    } else {
        emptyTableViewLbl.isHidden = true
    }

}

标签: iosswifttableview

解决方案


你可以didSet这样做

假设你的数组是

var posts:[Post] {
  didSet {
     if posts.isEmpty {
        emptyTableViewLbl.isHidden = false
    } else {
        emptyTableViewLbl.isHidden = true
        tableview.reloadData()
    }
    tableview.isHidden =  !emptyTableViewLbl.isHidden
  }

}

推荐阅读