动态创建 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
}
我正在尝试以编程方式创建 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
}