将UILabel文本分隔为三个不同的UILabel

时间:2017-11-18 07:23:32

标签: ios swift

我不确定标题是否符合我的要求,但我有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")

1 个答案:

答案 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)!)
}