gpt4 book ai didi

swift - 如何制作一个 TableView 并显示消息显示 TableView 是否为空?

转载 作者:行者123 更新时间:2023-11-30 12:25:15 25 4
gpt4 key购买 nike

我正在构建一个 tableView,它在空时显示一条消息。

我在这个问题上使用了非常有用的答案(Handling an empty UITableView. Print a friendly message),这让我找到了一个函数:

func emptyMessage(message:String, viewController:UITableViewController) {
let VCSize = viewController.view.bounds.size
let messageLabel = UILabel(frame: CGRect(x:0, y:0, width:VCSize.width, height:VCSize.height))
messageLabel.text = message
messageLabel.textColor = UIColor.black
messageLabel.numberOfLines = 0
messageLabel.textAlignment = .center;
messageLabel.font = UIFont(name: "Futura", size: 15)
messageLabel.sizeToFit()
viewController.tableView.backgroundView = messageLabel;
viewController.tableView.separatorStyle = .none;
}

我可以在每个 TableView 数据源中调用它,如下所示:

override func numberOfSectionsInTableView(tableView: UITableView) -> Int {
if projects.count > 0 {
return 1
} else {
TableViewHelper.EmptyMessage("You don't have any projects yet.\nYou can create up to 10.", viewController: self)
return 0
}
}

这会起作用。然而,我宁愿不必重复实现这一点,而是使用一个自定义 TableView ,并在数据源中使用一种方法询问您要添加什么消息。

我尝试扩展 TableView 类或创建 tableView 的子类,但我认为这不是解决方案。相反,我认为解决方案是覆盖 UITableViewDataSource 协议(protocol),但我对协议(protocol)和委托(delegate)的了解还不够。

我希望我能走在正确的道路上。为了澄清,我可以按照上面提到的方式做到这一点,但我正在尝试覆盖该功能以制定一个智能解决方案,我不会重复自己。

最佳答案

有一个非常好的库:

https://github.com/dzenbot/DZNEmptyDataSet

这可用于所有类型的容器,如 UITableView、UICollectionView 等。

遵循一些 DZNEmptyDataSetSourceDZNEmptyDataSetDelegate 后,您可以简单地实现这些功能:

func title(forEmptyDataSet scrollView: UIScrollView) -> NSAttributedString? {
let str = "Empty Data."
let attrs = [NSFontAttributeName: UIFont.preferredFont(forTextStyle: UIFontTextStyle.headline)]
return NSAttributedString(string: str, attributes: attrs)
}

func description(forEmptyDataSet scrollView: UIScrollView) -> NSAttributedString? {
let str = "Any Details about empty data."
let attrs = [NSFontAttributeName: UIFont.preferredFont(forTextStyle: UIFontTextStyle.body)]
return NSAttributedString(string: str, attributes: attrs)
}

除此之外,您还可以添加一个按钮来执行一些操作。请参阅库以了解更多功能。

关于swift - 如何制作一个 TableView 并显示消息显示 TableView 是否为空?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/44290377/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com