簡體   English   中英

UILabel中的lineSpacing屬性無法按預期工作

[英]lineSpacing property inside UILabel doesn't work as expected

我正在嘗試創建一個自定義UILabel類,這將允許我增加UILabel上的行距。 我知道您可以在IB中使用帶有屬性的文本字符串來執行此操作,但是如果您使用自定義字體,則無法使用。 這是我的課程代碼:

import UIKit

@IBDesignable
class SpacingLabel: UILabel
{

    @IBInspectable var lineSpacing: CGFloat = 10.0

    override func awakeFromNib()
    {
        self.renderText()
    }

    override func prepareForInterfaceBuilder()
    {
        super.prepareForInterfaceBuilder()
        self.renderText()
    }

    func renderText()
    {
        var attrString = NSMutableAttributedString(string:self.text!)

       if font != nil
        {
            NSMutableParagraphStyle.defaultParagraphStyle().mutableCopy()
            var paragraphStyle = NSMutableParagraphStyle.defaultParagraphStyle().mutableCopy() as!     NSMutableParagraphStyle 
            paragraphStyle.textAlignment = self.textAlignment

            paragraphStyle.lineSpacing = self.lineSpacing
            paragraphStyle.paragraphSpacing = self.lineSpacing

            attrString.addAttributes([NSFontAttributeName : self.font!, NSParagraphStyleAttributeName : paragraphStyle], range: NSMakeRange(0, attrString.length))
            self.attributedText = attrString
        }

        self.needsUpdateConstraints()
    }

}

這是它在IB(故事板)中的呈現方式:

在此處輸入圖片說明

這是它在模擬器中的渲染方式:

在此處輸入圖片說明

我嘗試添加minimumLineHeight和/或maximumLineHeight屬性,但是這些似乎以其他方式將其弄亂了……

所以...事實證明,屬性lineSpacingUILabel可能的私有變量/屬性發生了沖突。 我將自己的媒體資源重命名為leading ,現在可以正常使用了。

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM