ios - 如果我的数组中有数据,空 TableView 标签会闪烁一秒钟

标签 ios swift tableview

嗨,我搜索了堆栈溢出并看到 If no Table View results, display "No Results" on screen 这很有用,但不完全是我想要的。 我的问题是,当我按照这些步骤操作时,它可以正常工作。但如果我的表格 View 最终确实有数据,它会在填充我的数据之前闪烁我的“空表格 View 标签”一两秒。在我看来,这看起来很糟糕。

我有一个通过我的 tableview 上的 socket 连接的标签,名为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
    }

}

最佳答案

您可以使用didSet来执行此操作

假设你的数组是

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

}

关于ios - 如果我的数组中有数据,空 TableView 标签会闪烁一秒钟,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/50595417/

相关文章:

ios - Sirikit与Flutter集成

ios - 有没有办法在 iOS7 中显示设置应用程序

ios - 为什么实例变量被苹果认为是不好的做法?

ios - 将 "Edit"按钮添加到 UIViewController

ios - FBSDKLoginMangerLoginResult,NSError Swift 7.3.1

objective-c - 如何在表格 View 中对齐数组中的文本?

ios - 为什么我的 ImageView 不起作用以及为什么该 View 显示为空白屏幕?

ios - 按钮和标签在segue后消失

ScrollView 高度中的 IOS Tableview

swift - Swift 中使用自定义 TableViewCell 的核心数据图像