加入收藏 | 设为首页 | 会员中心 | 我要投稿 李大同 (https://www.lidatong.com.cn/)- 科技、建站、经验、云计算、5G、大数据,站长网!
当前位置: 首页 > 百科 > 正文

ios – UILabel线间距

发布时间:2020-12-14 19:34:17 所属栏目:百科 来源:网络整理
导读:我正在尝试按照Mike Slutsky here的规定在UILabel中设置行间距.它对于我从Storyboard指定的文本正常工作.当我尝试在代码中设置UILabel.text时,它将恢复为默认行间距.有人可以帮我理解如何: 使其不会恢复为默认值,并使用我在Storyboard上指定的设置或 在代码
我正在尝试按照Mike Slutsky here的规定在UILabel中设置行间距.它对于我从Storyboard指定的文本正常工作.当我尝试在代码中设置UILabel.text时,它将恢复为默认行间距.有人可以帮我理解如何:

>使其不会恢复为默认值,并使用我在Storyboard上指定的设置或
>在代码中设置值.

我已经看过很多关于使用NSAttribute和NSParagraph的例子,但由于现在可以设置在Storyboard中,我希望它们可能是一个更简单的答案.非常感谢您的帮助!

我设置了“高度倍数”,如上面的链接所示,我唯一的代码如下:

import UIKit

class ViewController: UIViewController {

    @IBOutlet weak var textView: UILabel!

    override func viewDidLoad() {
        super.viewDidLoad()
        // Do any additional setup after loading the view,typically from a nib.

        textView.text = "Some example text"
    }

    override func didReceiveMemoryWarning() {
        super.didReceiveMemoryWarning()
        // Dispose of any resources that can be recreated.
    }

}

如果我删除textView.text行,它会正确显示,否则会重新设置为默认行间距(或高度倍数).

解决方法

这是正在发生的事情.您可以使用自定义行间距在故事板中进行设置.这意味着,即使您可能不知道,在故事板中您已设置标签的attributesText.

但是,如果你随后出现并在代码中设置标签的文本,就像你正在做的那样,你丢弃了attributionText,因此抛弃了它拥有的所有属性.这就是为什么,正如你正确地说,事情会恢复到标签的默认外观.

解决方案是:不设置标签的文本,而是设置其attributesText.特别是,获取标签的现有attributionText;将它分配给NSMutableAttributedString,以便您可以更改它;在保持属性的同时替换它的字符串;并将其分配回标签的attributedText.

所以例如(我已经调用了我的标签实验室 – 你的textView是一个糟糕的选择,因为文本视图是完全不同的动物):

let text = self.lab.attributedText
let mas = NSMutableAttributedString(attributedString:text)
mas.replaceCharactersInRange(NSMakeRange(0,count(mas.string.utf16)),withString: "Little poltergeists make up the principle form of material manifestation")
self.lab.attributedText = mas

(编辑:李大同)

【声明】本站内容均来自网络,其相关言论仅代表作者个人观点,不代表本站立场。若无意侵犯到您的权利,请及时与联系站长删除相关内容!

    推荐文章
      热点阅读