gpt4 book ai didi

ios - 如何添加两个标签作为空的 UITableView 背景而不是 swift 中的一个?

转载 作者:行者123 更新时间:2023-11-28 11:09:47 25 4
gpt4 key购买 nike

我有一个动态填充数据的UITableViewController。现在我想在没有数据的情况下显示一条消息说没有数据。我想添加更长的消息,所以我决定添加两个标签,因为我不知道如何制作 2 级 uilabel。到目前为止,这是我的代码:

override func tableView(tview: UITableView, numberOfRowsInSection section: Int) -> Int {
var emptyLabel = UILabel(frame: CGRectMake(0, 10, self.view.bounds.size.width, 10))//self.view.bounds.size.height))
var emptyLabel2 = UILabel(frame: CGRectMake(0, -10, self.view.bounds.size.width, 10))//self.view.bounds.size.height))
emptyLabel.text = "There is no data over here."
emptyLabel.font = emptyLabel.font.fontWithSize(10)
emptyLabel2.text = "Please pull down the list to refresh or come back later"
emptyLabel2.font = emptyLabel.font.fontWithSize(10)
tview.backgroundView = emptyLabel
tview.backgroundView = emptyLabel2
if self.items.count == 0{
emptyLabel.hidden = false
emptyLabel2.hidden = false
tview.separatorStyle = UITableViewCellSeparatorStyle.None
return 0
} else {
emptyLabel.hidden = true
emptyLabel2.hidden = true
tview.separatorStyle = UITableViewCellSeparatorStyle.None
return self.items.count;
}
}

但是这样做之后,我只能看到第二个标签。如何将它们都显示在屏幕中央,一个在另一个之上?

最佳答案

由于这两行代码,您只能看到第二个标签:

    tview.backgroundView = emptyLabel
tview.backgroundView = emptyLabel2

在这里,您用第二个标签覆盖了第一个标签。结果只有第二个出现。但是,您的代码中存在很多问题。让我们一一解决。

  1. 使标签多行。使用 numberOfLines 属性使标签多行。

    emptyLabel.numberOfLines = 0 // Setting 0 makes the label multiline
  2. 尽管要容纳 2 行文本,但您需要使其更高,因此在初始化标签时提供更大的框架:

    var emptyLabel = UILabel(frame: CGRectMake(0, 10, self.view.bounds.size.width, 100))
  3. 不要在 numberOfRowsInSection 方法中创建 View 。这是一个错误的地方。而不是在 viewDidLoad 中进行。 numberOfRowsInSection 可能会被多次调用,您最终会在每次调用该方法时重新创建 View 。

关于ios - 如何添加两个标签作为空的 UITableView 背景而不是 swift 中的一个?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/35854695/

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