Swift:添加一个标签并将其放在另一个标签下面

标签 swift label scrollview

我想使用来自数据库的文本以编程方式创建标签。

因此,for 循环目前正在使用此函数创建标签:

    func fillScrollViewWithLabels() {
    for message in messages {

        let label = UILabel(frame: CGRectMake(0, 0, 200, 21))
        label.text = message.message
        self.chatScrollView.addSubview(label)

    }
}

但是这个函数将标签一个放在另一个之上。

它应该看起来像一个信使 - 标签是文本消息,我认为 ScrollView 非常适合。

最佳答案

您需要为标签的 Y 位置创建一个变量

var currentLabelYPosition : CGFloat = 0 // set to first y position

然后,当您迭代数组并创建标签时,您需要根据最后一个标签的 Y 位置获取其 Y 位置,如下所示:

for message in messages {

    let label = UILabel(frame: CGRectMake(0, currentLabelYPosition, 200,21))
    label.text = message.message
    self.chatScrollView.addSubview(label)
    currentLabelYPosition + label.frame.size.height // Update this accordingly with any type of padding, offset, etc. 

}

关于Swift:添加一个标签并将其放在另一个标签下面,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/31940656/

相关文章:

scrollview - SwiftUI - ScrollView 没有一直滚动到底部

ios - 在平移 View 中实时检测 scrollView 位置

ios - 在场景之间传递数据 (SpriteKit)

swift - 如何让函数在 Swift 中播放不同的声音

ios - 如何在 iOS 中创建类似于 iTunes Connect 中的图表?

ios - 使用 CoreNFC 检测 ISO/IEC 14443(Mifare Ultralight 或 Classic)NFC 卡

r - 您可以在现有轴下添加标签吗?

linux - "Fatal: there are problems with fetch_image.cgi"使用 LabelMeAnnotationTool

android - 使编辑文本出现在android中设备的顶部和软键盘之间

java - 在main中定义一个Label并在另一个方法中使用它