ios – UILabel线间距
我正在尝试按照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 (编辑:李大同) 【声明】本站内容均来自网络,其相关言论仅代表作者个人观点,不代表本站立场。若无意侵犯到您的权利,请及时与联系站长删除相关内容! |