行间距不起作用

时间:2018-03-25 16:27:51

标签: ios swift

我想在故事板中更改textLabel的行间距。我选择text - > attributed并将段落line更改为1.如果我在故事板中使用textLabel,一切正常。但是,如果我将故事板中的textLabel与我的ViewController相关联,则此行间距不起作用。如何解决?

我的代码:

struct Root : Decodable {
    let questions : [Question]
}

struct Question : Decodable {
    let number, text, rightAnswer : String
}

class ViewController: UIViewController, UITextFieldDelegate {

    var questions = [Question]()
    @IBOutlet var textLabel: UILabel!

    func updateUI(with question: Question) {
        title = question.number
        textLabel.text = question.text
        showAnswerLabel.text = question.rightAnswer
    }


}

1 个答案:

答案 0 :(得分:0)

您可以通过使用lazy var和一些属性观察器来完成此操作。在Interface Builder中以您希望的方式配置文本样式并使用以下代码:

class ViewController: UIViewController {
    @IBOutlet weak var textLabel: UILabel!

    lazy var defaultAttributes = textLabel.attributedText!.attributes(at: 0, effectiveRange: nil)
    var questionText: String {
        get { return textLabel.text! }
        set { textLabel.attributedText = NSAttributedString(string: newValue, attributes: defaultAttributes) }
    }

    override func viewDidLoad() {
        super.viewDidLoad()
        questionText = "What are the color of yellow cab taxi in New York City?"
    }
}

请注意,我们未直接触摸textLabel来更改其文字。我们通过计算属性questionText来完成。

结果:

sample UILabel