Swift 如何向滚动视图添加UILabel以显示标签中的所有文本

Swift 如何向滚动视图添加UILabel以显示标签中的所有文本,swift,xcode,Swift,Xcode,我正试图以编程方式向scrollview添加2个UILabel。UILabel中的文本是动态的,我不知道文本是什么,因为它是从数据库加载的。因此,我不知道我应该设置什么尺寸的标签。Im使用滚动视图显示每个标签内的所有文本 我该怎么做呢?目前,我正在使用以下代码 let textArray = [job.title, job.description] for stage in 0...1{ let label = UILabel() label.font =

我正试图以编程方式向scrollview添加2个UILabel。UILabel中的文本是动态的,我不知道文本是什么,因为它是从数据库加载的。因此,我不知道我应该设置什么尺寸的标签。Im使用滚动视图显示每个标签内的所有文本

我该怎么做呢?目前,我正在使用以下代码

let textArray = [job.title, job.description]
    for stage in 0...1{
        let label = UILabel()
        label.font = UIFont(name: "CenturyGothic", size: 20)
        label.textColor = #colorLiteral(red: 1, green: 1, blue: 1, alpha: 1)
        label.textAlignment = .center
        label.lineBreakMode = .byWordWrapping
        label.numberOfLines = 0
        label.text = textArray[stage]
        scrollView.addSubview(label)
    }

标题和描述是动态的,并从数据库中提取。但是,这不会显示任何文本,更不用说我的滚动视图了。任何帮助都将不胜感激。

您还必须设置标签的框架

    let label = UILabel(frame: CGRect(x: self.view.frame.size.width/2 - 75, y: self.view.frame.size.height-100, width: 150, height: 35))
    label.autoresizingMask = [.flexibleWidth, .flexibleHeight]
    label.textColor = UIColor.white
    label.textAlignment = .center;
    lLabel.font = UIFont(name: "Montserrat-Light", size: 12.0)
    label.text = message
    label.alpha = 1.0
    self.scrollView.addSubview(label)

您是否考虑过使用
UITextView

如果您想使用
UILabels
我建议在
UIScrollView
中放置一个垂直的
UIStackView
来放置
UILabels

将scrollview到superview和stackview到scrollview的顶部、底部、尾部和前导锚定设置为零。还将superview的等宽约束设置为stackview。垂直堆栈将根据其内容自动计算其高度,但宽度需要从外部设置。当滚动视图的内容高度超过其高度时,滚动视图将变为可滚动视图

另外,不要忘记将标签的行数设置为零,以允许它们显示无限多的行


您可以通过编程方式设置所有这些内容,也可以在故事板中设置除标签以外的所有内容,这会更快,并减少ViewController中样板代码的数量。

为什么不使用
UITableView
?使用表视图显示动态数据。。。。您还可以根据需要定制电池。