2017-10-21 15 views
0

레이블에서 밑줄의 색을 어떻게 변경합니까? 전체 텍스트가 아닌 밑줄 만 색을 바꾸기를 원합니다.Swift의 밑줄 만 색을 지정하십시오.

나는 밑줄 얻기 위해이 코드를 사용했습니다 :

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

을하지만 난 밑줄 색상을 설정하는 코드를 찾을 수 없습니다. 도움을 줄 수있는 사람은 누구입니까?

답변

0

다른 해결책은 레이블 아래에 밑줄로 사용되는 한 줄의 테두리를 추가하는 것입니다. 라벨

@IBOutlet weak var myLabel: UILabel! 

가져 오기 참조는 레이블 아래

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 

주 경계를 추가 :이 해결 방법을 사용하면 전체 레이블을 강조한다. 당신이 부분적으로 텍스트 undlerline이 솔루션은 NSAttributedStringKey.underlineColor 속성은 당신이 원하는 것을

0

appropiate되지해야하는 경우 텍스트 색이 검은 색을 유지하는 반면

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

이 주황색으로 밑줄 색상을 설정합니다.

0

스위프트 넷 솔루션은

당신은 [: 모든 NSAttributedStringKey]와 같은 속성의 배열 NSAttributedString은을 사용해야합니다.

샘플 코드 :

수입 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 
    } 

}