我有一系列标签和一组字母,我想按字母顺序打印标签中的每个字母。
我对字母数组进行了排序,但我不知道如何对标签数组进行排序。
class ViewController: UIViewController {
@IBOutlet var labels: [UILabel]!
override func viewDidLoad() {
super.viewDidLoad()
wordToLabel()
}
let letters = ["B", "E", "C", "D", "A"]
func wordToLabel() {
for index in labels.indices {
let label = labels[index]
let sortedLetters = letters.sorted { $0 < $1 }
label.text = sortedLetters[index]
print(sortedLetters)
}
}
}
我可以不使用UITableView
吗?
答案 0 :(得分:1)
如果我们假设您的labels
数组的顺序正确,那么您可以这样做:
let letters = ["B", "E", "C", "D", "A"]
func wordToLabel() {
let sortedLetters = letters.sorted()
for (index, label) in labels.enumerated() {
label.text = sortedLetters[index]
}
使用labels.enumerated
可以访问索引和项目。然后,您可以使用index
浏览sortedLetters
。
顺便说一下,sortedLetters
被遗漏在循环之外,因为你不应该多次排序。
希望有所帮助。
答案 1 :(得分:1)
您一定要确保标签的顺序正确。除此之外你可以这样做:
let letters = ["B", "E", "C", "D", "A"]
func wordToLabel() {
let sortedLetters = letters.sorted()
let sortedLabels = labels.sorted { $0.frame.origin.y < $1.frame.origin.y }
for (index, label) in sortedLabels.enumerated() {
label.text = sortedLetters[index]
}
}