uilabel中的字符串拆分多行很快

时间:2019-02-21 12:45:54

标签: arrays swift string split uilabel

我想拆分动态UILabel文本,例如下面的

UILabel文本-

  

能力倾向测试与您的要求相关的英语技能。它使组织/机构可以评估所有四种英语技能–阅读,写作,听力和口语以及核心必修部分(语法和词汇),或者仅测试一种技能,例如阅读。

可以将每个换行符拆分为字符串数组,即使在屏幕尺寸的每个尺寸(iphone或ipad)上也是如此。

我想要的结果是字符串数组-

  

[““能力测试与您的要求相关的英语技能。它使组织/机构成为可能”,”评估所有四个英语技能–阅读,写作,听力和口语以及核心的“,”必修部分(语法和词汇) )或仅测试一项技能,例如阅读。“]

UILabel中的每个换行符都需要分割字符串,而不考虑动态屏幕大小

1 个答案:

答案 0 :(得分:1)

您的方法可能很难,相反,我建议您使用其他方法,例如使用arg_sec_ids

sizeWithAttributes

假设您知道标签中的宽度和字体大小,则可以使用以下逻辑:

extension String {

func widthOfString(usingFont font: UIFont) -> CGFloat {
    let fontAttributes = [NSAttributedString.Key.font: font]
    let size = self.size(withAttributes: fontAttributes)
    return size.width
}

func heightOfString(usingFont font: UIFont) -> CGFloat {
    let fontAttributes = [NSAttributedString.Key.font: font]
    let size = self.size(withAttributes: fontAttributes)
    return size.height
}

func sizeOfString(usingFont font: UIFont) -> CGSize {
    let fontAttributes = [NSAttributedString.Key.font: font]
    return self.size(withAttributes: fontAttributes)
    }
}