我试图以编程方式将2个UILabel添加到scrollview。 UILabel中的文本是动态的,我不知道文本将是什么,因为它是从数据库加载的。因此,我不知道我应该设置我的UILabel的大小。我使用滚动视图显示每个标签内的所有文本。
我该怎么做呢?目前,我使用以下代码;
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)
}
标题和说明是动态的,并从数据库中提取。但是,这不会显示任何文本,更不用说我的滚动视图了。任何帮助将不胜感激。
答案 0 :(得分:2)
您是否考虑使用UITextView
?
如果您想使用UILabels
,我建议您在UIStackView
内放置UIScrollView
垂直UILabels
以放入CallNextHookEx
。
将滚动视图设置为superview,将stackview设置为scrollview,将top,bottom,trailing和leading锚点设置为零。还将superview的宽度约束设置为stackview。垂直堆栈将根据其内容自动计算其高度,但宽度需要从外部设置。滚动视图的内容高度超过其高度时,滚动视图将变为可滚动。
另外,不要忘记将标签的行数设置为零,以允许它们显示无穷无尽的行数。
您可以通过编程方式设置所有这些内容,或者设置除故事板中标签之外的所有内容,这样可以更快地减少ViewController中样板代码的数量。
答案 1 :(得分:0)
您还必须设置标签的框架。
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)