iOS   发布时间:2022-05-04  发布网站:大佬教程  code.js-code.com
大佬教程收集整理的这篇文章主要介绍了ios – UILabel线间距大佬教程大佬觉得挺不错的,现在分享给大家,也给大家做个参考。

概述

我正在尝试按照Mike Slutsky here的规定在UILabel中设置行间距.它对于我从Storyboard指定的文本正常工作.当我尝试在代码中设置UILabel.text时,它将恢复为默认行间距.有人可以帮我理解如何: >使其不会恢复为默认值,并使用我在Storyboard上指定的设置或 >在代码中设置值. 我已经看过很多关于使用NSAttribute和NSParagraph的例子,但由于
我正在尝试按照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

大佬总结

以上是大佬教程为你收集整理的ios – UILabel线间距全部内容,希望文章能够帮你解决ios – UILabel线间距所遇到的程序开发问题。

如果觉得大佬教程网站内容还不错,欢迎将大佬教程推荐给程序员好友。

本图文内容来源于网友网络收集整理提供,作为学习参考使用,版权属于原作者。
如您有任何意见或建议可联系处理。小编QQ:384754419,请注明来意。