Adding underline to UILabel attributed string from the storyboard fails

IosObjective CUilabelNsattributedstring

Ios Problem Overview


  1. From the storyboard I select the UILabel in question
  2. Then in Attribute Inspector > Label > [I choose] Attributed
  3. Also in Attribute Inspector > Label > Text> [I select the content]
  4. Then I click on the font icon and choose underline

Basically, any change that I select from the Fonts window that pops up does not take effect.

Has anyone ever successfully add underline from the storyboard?

Note: I already know how to do this in code. I want to avoid adding code.

Ios Solutions


Solution 1 - Ios

Here is the solution in storyboard: Open the Attribute Inspector (make sure label is selected), Change the dropdown value from 'Plain' to 'Attributed'. Now a a small text editor will be visible under the font of the label. Select the text of the label, right click and change the font to 'underline'.

I also have attached a screenshot and successfully underlined a text using storyboard in XCode 7.0.1enter image description here

Solution 2 - Ios

Underline your text in TextEdit(cmd-U) and copy-paste it in Attribute Inspector > Label > Text > Attributed.

Solution 3 - Ios

Select label -> Attribute editor -> Title = Attributed

Select the text of the label in the text view in the editor -> Right click -> Font -> check Underline

If the change is not visible -> resize the label

Solution 4 - Ios

You can make text underline from storyboard like this. But when you change the text programatically it will override and underline will gone. So if you have to change the text on runtime. Do this.

For Swift 3

 let text = myLabel.text
 let textRange = NSMakeRange(0, (text?.characters.count)!)
 let attributedText = NSMutableAttributedString(string: text!)
 attributedText.addAttribute(NSUnderlineStyleAttributeName , value: NSUnderlineStyle.styleSingle.rawValue, range: textRange)
 myLabel.attributedText = attributedText

For Swift 4

  let text = myLabel.text
  let textRange = NSRange(location: 0, length: (text?.count)!)
  let attributedText = NSMutableAttributedString(string: text!)
  attributedText.addAttribute(NSAttributedStringKey.underlineStyle, value: NSUnderlineStyle.styleSingle.rawValue, range: textRange)
  myLabel.attributedText = attributedText

Solution 5 - Ios

Leave it set to plain. Make all of your changes. Then change it to attributed.

Solution 6 - Ios

The Designer Way - Highly Customisable Version

I personally prefer to customise my design(s) as much as possible. Sometimes, you will find that using the built-in underline tool is not easily customisable.

To do something like the following, I have posted an example in How to make an underlined text in UILabel?

enter image description here

Attributions

All content for this solution is sourced from the original question on Stackoverflow.

The content on this page is licensed under the Attribution-ShareAlike 4.0 International (CC BY-SA 4.0) license.

Content TypeOriginal AuthorOriginal Content on Stackoverflow
QuestionKatedral PillonView Question on Stackoverflow
Solution 1 - IosAbdullah SaeedView Answer on Stackoverflow
Solution 2 - IosUladzimirView Answer on Stackoverflow
Solution 3 - IosIris VeririsView Answer on Stackoverflow
Solution 4 - IosSajid ZebView Answer on Stackoverflow
Solution 5 - IossmileBotView Answer on Stackoverflow
Solution 6 - IosMickView Answer on Stackoverflow