如何从 Swift 中的数组设置多个 UILabel?
How to set multiple UILabels from array in Swift?
我想做的是获取今天的工作日。从中我得到剩下的 6 个工作日,我将它们放入一个数组中,然后尝试使用这个数组来更新 7 UILabel
s。从今天开始的工作日的简短列表。我的 UILabel
位于引用出口集合中,我已将它们的标签设置为 0 到 6。
我已经尝试了多个不同的版本(最初没有任何数组),并设法在 Playground 上工作,直到我在数组中有工作日但在实际项目中,当我尝试更新标签,它构建成功但随后崩溃。
编辑:成功构建后出现崩溃。线程 1 中的错误:断点 1.1。显然停在 super.viewDidLoad() 行。
Edit2:按照建议进行了更改。构建成功,然后以与第一次编辑相同的方式崩溃。
感谢任何帮助。
import UIKit
class ViewController: UIViewController {
@IBOutlet var label: [UILabel]!
var rollingDay = NSDate()
var array: [String] = []
func addDays() {
var calendar = NSCalendar.currentCalendar()
var formatter = NSDateFormatter()
var stringRolling = formatter.stringFromDate(rollingDay)
for var x = 0; x<7; x++ {
calendar = NSCalendar.currentCalendar()
formatter = NSDateFormatter()
formatter.dateFormat = "EEEE"
stringRolling = formatter.stringFromDate(rollingDay)
array.append(stringRolling)
rollingDay = calendar.dateByAddingUnit(.CalendarUnitDay, value: 1, toDate: rollingDay, options: nil)!
}
}
func updateLabels() {
for (index, day) in enumerate(array) {
let label : UILabel = self.view.viewWithTag(index) as! UILabel
label.text = day as String
}
}
override func viewDidLoad() {
super.viewDidLoad()
addDays()
updateLabels()
// Do any additional setup after loading the view, typically from a nib.
}
override func didReceiveMemoryWarning() {
super.didReceiveMemoryWarning()
// Dispose of any resources that can be recreated.
}
}
由于您已经使用array
保留了所有的工作日,现在您只需枚举数组来设置标签,如下所示:
for (index, day) in enumerate(array) {
let label : UILabel = self.view.viewWithTag(index) as! UILabel
label.text = day as String
}
我想做的是获取今天的工作日。从中我得到剩下的 6 个工作日,我将它们放入一个数组中,然后尝试使用这个数组来更新 7 UILabel
s。从今天开始的工作日的简短列表。我的 UILabel
位于引用出口集合中,我已将它们的标签设置为 0 到 6。
我已经尝试了多个不同的版本(最初没有任何数组),并设法在 Playground 上工作,直到我在数组中有工作日但在实际项目中,当我尝试更新标签,它构建成功但随后崩溃。
编辑:成功构建后出现崩溃。线程 1 中的错误:断点 1.1。显然停在 super.viewDidLoad() 行。
Edit2:按照建议进行了更改。构建成功,然后以与第一次编辑相同的方式崩溃。
感谢任何帮助。
import UIKit
class ViewController: UIViewController {
@IBOutlet var label: [UILabel]!
var rollingDay = NSDate()
var array: [String] = []
func addDays() {
var calendar = NSCalendar.currentCalendar()
var formatter = NSDateFormatter()
var stringRolling = formatter.stringFromDate(rollingDay)
for var x = 0; x<7; x++ {
calendar = NSCalendar.currentCalendar()
formatter = NSDateFormatter()
formatter.dateFormat = "EEEE"
stringRolling = formatter.stringFromDate(rollingDay)
array.append(stringRolling)
rollingDay = calendar.dateByAddingUnit(.CalendarUnitDay, value: 1, toDate: rollingDay, options: nil)!
}
}
func updateLabels() {
for (index, day) in enumerate(array) {
let label : UILabel = self.view.viewWithTag(index) as! UILabel
label.text = day as String
}
}
override func viewDidLoad() {
super.viewDidLoad()
addDays()
updateLabels()
// Do any additional setup after loading the view, typically from a nib.
}
override func didReceiveMemoryWarning() {
super.didReceiveMemoryWarning()
// Dispose of any resources that can be recreated.
}
}
由于您已经使用array
保留了所有的工作日,现在您只需枚举数组来设置标签,如下所示:
for (index, day) in enumerate(array) {
let label : UILabel = self.view.viewWithTag(index) as! UILabel
label.text = day as String
}