我不确定标题是否符合我的要求,但我有label
一堆句子,我想将它们中的每一个分开到不同的UILabel
这是我的代码
var s: [String] = []
for (i, pred) in results.enumerated() {
let latLongArr = pred.0.components(separatedBy: "\t")
myLatitude = latLongArr[1]
myLongitude = latLongArr[2]
s.append(String(format: "%d: %@ %@ (%3.2f%%)", i + 1, myLatitude, myLongitude, pred.1 * 100))
places[i].title = String(i+1)
places[i].coordinate = CLLocationCoordinate2D(latitude: CLLocationDegrees(myLatitude)!, longitude: CLLocationDegrees(myLongitude)!)
}
predictionLabel.text = s.joined(separator: "\n") // one label
并且UILabel文本看起来像这样
Prediction 1: latitude longitude // first sentence
(probability%)
Prediction 2: latitude longitude // second
(probability%)
Prediction 3: latitude longitude // third
(probability%)
谢谢
我创建了三个标签并试用了这段代码,不幸的是它给出了第一个结果
self.predict1.text = s.joined(separator: "\n")
self.predict2.text = s.joined(separator: "\n")
self.predict3.text = s.joined(separator: "\n")
答案 0 :(得分:2)
您可以将标签上的numberOfLines设置为0,将lineBreakMode设置为。byWordWrapping,也可以进行垂直statckview,为每个字符串实例化标签,并将标签添加到stackview& #39; s arrangedSubviews。
修改强> 现在我看一下你的代码真正的问题是让latLongArr = pred.0.components(separatedBy:" \ t")。很可能你的数据在其中有尾随换行符,你需要在经度之后杀死尾随的换行符。
var s: [String] = []
for (i, pred) in results.enumerated() {
let latLongArr = pred.0.components(separatedBy: "\t").replacingOccurrences(of: "\n", with: "")
myLatitude = latLongArr[1]
myLongitude = latLongArr[2]
s.append(String(format: "%d: %@ %@ (%3.2f%%)", i + 1, myLatitude, myLongitude, pred.1 * 100))
places[i].title = String(i+1)
places[i].coordinate = CLLocationCoordinate2D(latitude: CLLocationDegrees(myLatitude)!, longitude: CLLocationDegrees(myLongitude)!)
}