我有一系列的标签和一系列的字母,我想按字母顺序打印每个字母。
我对字母数组进行了排序,但我不知道如何对标签数组排序。
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
来做这个吗?
发布于 2018-03-13 10:49:00
你一定要确保标签的顺序是正确的。除此之外,你还可以做这样的事情:
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]
}
}
发布于 2018-03-13 10:30:07
如果我们假设您的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
没有出现在循环之外,因为您不应该对它进行多次排序。
希望这能有所帮助。
https://stackoverflow.com/questions/49262596
复制