我試圖創建一個屬性串,但下劃線涵蓋了我的文字,而不是顯示它背後的:下劃線涵蓋文字NSAttributedString
是有辦法解決這一問題?我正在使用以下代碼:
let paragraphStyle = NSMutableParagraphStyle()
paragraphStyle.lineSpacing = 10.0
let attributes = [NSForegroundColorAttributeName: UIColor.white,
NSUnderlineStyleAttributeName: NSUnderlineStyle.styleThick.rawValue,
NSUnderlineColorAttributeName: UIColor.red,
NSParagraphStyleAttributeName: paragraphStyle]
let attributedString = NSAttributedString(string: "Story", attributes: attributes)
謝謝!
編輯:
爲了讓更多的上下文:
我上顯示一個UILabel的屬性串放在一個文件的.xib:
view.textLabel.attributedText = attributedString
標籤有以下字體: 系統粗體32.0
我在iPhone 6 - iOS 10.3模擬器上運行代碼。
編輯2:
我應該提到的是,標籤可能在某些時候,包含文本的多行。這就是爲什麼numberOfLines設置爲0.
編輯3: 如果有人遇到這個問題 - 好像在iOS 9和10以及UILabel和UITextView上繪製下劃線有很大的區別。我最終不得不通過繼承NSLayoutManager來自己繪製下劃線。
無法重現問題。在我的機器上,下劃線很好地與文本分開,並且不與「y」的下行相交。 https://i.stack.imgur.com/uXs4R.png請顯示更多的代碼,使其具有可重現性。你如何顯示這個屬性字符串?你使用什麼字體?等等。 – matt
同樣在這裏,我也無法在我的機器上覆制您的問題。它與文本很好地分開顯示。 @GrzegorzAperliński – iPeter
(另外我可能會提到你的代碼沒有在我的機器上編譯,需要明確聲明'attributes'屬於類型'[String:Any]'。) – matt