2017-10-21 2 views
0

Wie ändere ich die Farbe meiner Unterstreichung in einem Etikett? Ich möchte nur die Unterstreichung, um Farbe zu ändern, und nicht den gesamten Text.Farbe nur unterstreichen in Swift

Ich habe diesen Code verwendet, um die unterstrichenen zu erhalten:

let underlineAttribute = [NSAttributedStringKey.underlineStyle: NSUnderlineStyle.styleSingle.rawValue] 
let underlineAttributedString = NSAttributedString(string: "\(nearSavings[indexPath.row]) ,-", attributes: underlineAttribute) 
cell.detailTextLabel?.attributedText = underlineAttributedString 

Aber ich kann den Code finden, die Unterstreichungsfarbe einzustellen. Wer kann helfen?

Antwort

0

Eine andere Lösung könnte sein, einen einzelnen Linienrand unter dem Label hinzuzufügen, der als Unterstreichung fungiert.

Get Bezug auf das Etikett

@IBOutlet weak var myLabel: UILabel! 

Fügen Sie die Grenze unter dem Label

let labelSize = myLabel.frame.size 
    let border = CALayer() 
    let w = CGFloat(2.0) 

    border.borderColor = UIColor.yellow.cgColor // <--- Here the underline color 
    border.frame = CGRect(x: 0, y: labelSize.height - w, width: labelSize.width, height: labelSize.height) 
    border.borderWidth = w 
    myLabel.layer.addSublayer(border) 
    myLabel.layer.masksToBounds = true 

Hinweis: mit dieser Problemumgehung unterstreichen Sie das gesamte Etikett. Wenn Sie teilweise zu undlerline Text müssen, ist diese Lösung nicht

0

Das NSAttributedStringKey.underlineColor Attribut tut Appropiate, was Sie wollen:

let underlineAttributes = [ 
    NSAttributedStringKey.underlineStyle: NSUnderlineStyle.styleSingle.rawValue, 
    NSAttributedStringKey.underlineColor: UIColor.orange 
] as [NSAttributedStringKey : Any] 
let underlineAttributedString = NSAttributedString(string: "Test", attributes: underlineAttributes) 

Dies wird die Unterstreichungsfarbe auf Orange, während die Textfarbe schwarz bleiben.

0

Swift 4 Lösung

Sie müssen NSAttributedString verwenden, um mit einer Reihe von Attributen wie [NSAttributedStringKey: Alles].

Beispielcode:

Import UIKit

class ViewController: UIViewController { 

    @IBOutlet weak var myLabel: UILabel! 

    override func viewDidLoad() { 
     super.viewDidLoad() 

     // Colored Underline Label 
     let labelString = "Underline Label" 
     let textColor: UIColor = .blue 
     let underLineColor: UIColor = .red 
     let underLineStyle = NSUnderlineStyle.styleSingle.rawValue 

     let labelAtributes:[NSAttributedStringKey : Any] = [ 
      NSAttributedStringKey.foregroundColor: textColor, 
      NSAttributedStringKey.underlineStyle: underLineStyle, 
      NSAttributedStringKey.underlineColor: underLineColor 
     ] 

     let underlineAttributedString = NSAttributedString(string: labelString, 
                  attributes: labelAtributes) 

     myLabel.attributedText = underlineAttributedString 
    } 

}