动态创建 UILabel 并同时更改文本

Create UILabel dynamically and Change the text Also

我正在尝试以编程方式创建 7 UILabel,但我无法更改所有 UILabel 的文本。

let viewsCount = 2
let viewLblcount   =   7
var messageForLbl = ["helo", "bhago", "futo", "bhensali" , "bhaaw bhaaw", "haha" ,"alladh"]

let floatValue = CGFloat(viewsCount)
let floatLbl = CGFloat(viewLblcount)

let scrollView: UIScrollView = UIScrollView(frame: CGRectMake(20, 30, 320, 250 * floatValue))

for i in 0 ..< viewsCount {
    let views: UIView = UIView(frame: CGRectMake(0, 320 * CGFloat(i) + floatValue, self.view.frame.size.width - 40, 300))
    views.backgroundColor = UIColor.grayColor()
    views.tag = i + 1

    for j in 0 ..< viewLblcount {
        let label = UILabel(frame: CGRectMake(20, 40 * CGFloat(j) + floatLbl, self.view.frame.size.width - 100, 20))
        let label2 = UILabel(frame: CGRectMake(10, 90 * CGFloat(j) + floatLbl, self.view.frame.size.width - 100, 30))

        label.backgroundColor = UIColor.cyanColor()
        label.text = "iOS LABEL TRY"

        label2.backgroundColor = UIColor.magentaColor()
        label2.text = "iOS LABEL TRY2"

        label.tag = j + 1
        label2.tag = j + 1

        views.addSubview(label)
        views.addSubview(label2)

        scrollView.addSubview(views)
        self.view!.addSubview(scrollView)
        scrollView.contentSize = CGSizeMake(310, 390 * floatValue)
    }

所有标签都显示相同的文本。

因为您对文本进行了硬编码

label.text = "iOS LABEL TRY"

您在这些行上硬编码了标签文本:

label.text = "iOS LABEL TRY"
label2.text = "iOS LABEL TRY2"

我不太确定你想要在每个标签中使用什么文本,但我认为你想将其更改为:

label.text = messageForLbl[j]

此外,您可以通过使用 Swift 的枚举器来避免将来的错误(这样您就不必在更改 messageForLbl 时更改 viewLblcount):

for value in messageForLbl.enumerate() {
    label.text = value
}