首页
学习
活动
专区
圈层
工具
发布
首页
学习
活动
专区
圈层
工具
MCP广场
社区首页 >问答首页 >用uilabel多行分隔字符串

用uilabel多行分隔字符串
EN

Stack Overflow用户
提问于 2019-02-21 12:45:54
回答 1查看 481关注 0票数 2

我想拆分我的动态UILabel文本,如下所示

UILabel文本-

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

在屏幕大小的每一个维度,无论是iphone还是ipad,都要分裂成字符串数组,每一行都要断线。

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

“能力倾向测试与你的要求相关的英语技能。它使一个组织/机构能够评估所有四项英语技能--阅读、写作、听力和口语,以及核心技能”、“必修部分(语法和词汇)或只测试一项技能,例如阅读”。

对于UILabel中的每一个中断行,我都需要拆分字符串,而不考虑动态屏幕大小。

EN

回答 1

Stack Overflow用户

回答已采纳

发布于 2019-02-21 14:25:23

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

代码语言:javascript
运行
复制
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)
    }
}

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

代码语言:javascript
运行
复制
    let inputText = "Aptitude tests English skills relevant to your requirements. It enables an organisation / institution to assess all four English skills – reading, writing, listening and speaking together with the core mandatory component (grammar and vocabulary) or test just one skill, e.g. reading."
    let labelWidth = UIScreen.main.bounds.width
    var resultArray:[String] = []
    var readerString = ""
    for i in 0 ..< inputText.count
    {

        readerString += inputText[i]
        //Check if overflowing boundries and wrapping for new line
        if readerString.widthOfString(usingFont: UIFont.systemFont(ofSize: 14)) >= labelWidth {
            resultArray.append(readerString)
            readerString = ""
        }
 }
票数 1
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/54807417

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档