我想使用来自数据库的文本以编程方式创建标签。
因此,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/