Swift에서 UILabel의 textColor를 설정하는 방법
코드를 사용하여 UILabel의 색상을 다른 UILabel의 색상으로 설정하려고 할 때
myLabel.textColor = otherLabel.textColor
색상을 변경하지 않습니다. 그러나이 코드를 사용하면
myLabel.textColor = UIColor.redColor()
색상이 올바르게 변경됩니다. 첫 번째 줄의 문제는 무엇입니까?
가장 쉬운 해결 방법은 IB에서 더미 레이블을 만들고 원하는 색상을 지정하고 숨김으로 설정하는 것입니다. 그런 다음 코드에서이 색상을 참조하여 레이블을 원하는 색상으로 설정할 수 있습니다.
yourLabel.textColor = hiddenLabel.textColor
프로그래밍 방식으로 텍스트 색상을 변경할 수있는 유일한 방법은 표준 색상 UIColor.white
, UIColor.green
...
다음 코드 예제는 기본 UILabel
구성을 보여줍니다 .
let lbl = UILabel(frame: CGRectMake(0, 0, 300, 200))
lbl.text = "yourString"
// Enum type, two variations:
lbl.textAlignment = NSTextAlignment.Right
lbl.textAlignment = .Right
lbl.textColor = UIColor.red
lbl.shadowColor = UIColor.black
lbl.font = UIFont(name: "HelveticaNeue", size: CGFloat(22))
self.view.addSubview(lbl)
이유는 모르겠지만 라벨의 텍스트 색상을 변경하려면 1.0까지만 작동하기 때문에 원하는 값을 255로 나누어야합니다.
예를 들어 진한 파란색 :
label.textColor = UIColor(red: 0.0, green: 0.004, blue: 0.502, alpha: 1.0)
IB에서 두 개의 레이블과 다음과 같은 앱을 만들었습니다.
@IBOutlet var label1: UILabel!
@IBOutlet var label2: UILabel!
override func viewDidLoad() {
super.viewDidLoad()
label1.textColor = UIColor.redColor() // in Swift 3 it's UIColor.red
label2.textColor = label1.textColor
}
label2 색상이 예상대로 변경되었으므로 선이 작동합니다. 시도 println(otherLabel.textColor)
는 색상이 예상 무엇 있는지 myLabel.textColor를 설정 직전.
신속한 3 솔루션-
let titleLabel = UILabel(frame: CGRect(x: 0, y: 0, width: 40, height: 40))
titleLabel.text = "change to red color"
titleLabel.textAlignment = .center
titleLabel.textColor = UIColor.red
Xcode 8 및 swift 3을 사용하는 경우 다음 방법을 사용하여 UIColor를 가져옵니다.
label1.textColor = UIColor.red
label2.textColor = UIColor.black
대부분의 사람들은 자리 표시 자 텍스트가 회색이고 한 번만 표시되기를 원하므로 다음과 같이했습니다.
색상 설정
viewDidLoad()
(IB가 아님)commentsTextView.textColor = UIColor.darkGray
UITextViewDelegate
컨트롤러에 구현컨트롤러에 기능 추가
func textViewDidBeginEditing(_ textView: UITextView) { if (commentsTextView.textColor == UIColor.darkGray) { commentsTextView.text = "" commentsTextView.textColor = UIColor.black } }
이 솔루션은 간단합니다.
텍스트 필드 자리 표시 자와 "정말"레이블은 밤에보기 어렵습니다. 그래서 나는 하루 중 몇시에 색깔을 바꾼다.
또한 새 IBOutlet isReallyLabel을 연결했는지 확인하십시오. 그렇게하려면 Main.storybaord를 열고 "변환"뷰 컨트롤러에서 "정말"텍스트 필드로 control- 드래그하고 Outlets에서 isReallyLabel을 선택합니다.
경고 : 시간이 바뀌는 동안 응용 프로그램이 열려 있는지 테스트하지 않았습니다.
@IBOutlet var isReallyLabel: UILabel!
override func viewWillAppear(animated: Bool) {
let calendar = NSCalendar.currentCalendar()
let hour = calendar.component(.Hour, fromDate: NSDate())
let lightColor = UIColor.init(red: 0.961, green: 0.957, blue: 0945, alpha: 1)
let darkColor = UIColor.init(red: 0.184, green: 0.184 , blue: 0.188, alpha: 1)
switch hour {
case 8...18:
isReallyLabel.textColor = UIColor.blackColor()
view.backgroundColor = lightColor
default:
let string = NSAttributedString(string: "Value", attributes: [NSForegroundColorAttributeName: UIColor.whiteColor()])
textField.attributedPlaceholder = string
isReallyLabel.textColor = UIColor.whiteColor()
view.backgroundColor = darkColor
}
}
런타임에 UILable의 텍스트 색상을 변경하려면 NSAttributedText를 사용하고 UILable.textColor를 설정하지 마십시오.
let font = UIFont(name: "SFProText-Semibold", size: 16)!
if let messageToDisplay = currentUser?.lastMessage {
let attributedString = NSAttributedString(string: messageToDisplay, attributes: [NSAttributedString.Key.font: font, NSAttributedString.Key.foregroundColor: UIColor(named: "charcoal")!])
lastMessageLabel.attributedText = attributedString
} else {
let attributedString = NSAttributedString(string: "Start a conversation", attributes: [NSAttributedString.Key.font: font, NSAttributedString.Key.foregroundColor: UIColor(named: "ocean")!])
lastMessageLabel.attributedText = attributedString
}
참고 숯 과 바다 Assets.xcassets에 정의 된 색상입니다. 결과 라벨 이미지 :
위의 코드는 Xcode 10.2.1 및 Swift 5에서 잘 작동했습니다.
아래와 같이 사용하실 수 있으며 할당 만하면 다양한 색상을 사용할 수 있습니다.
myLabel.textColor = UIColor.yourChoiceOfColor
전의:
myLabel.textColor = UIColor.red
또는 여기 를 클릭 하여 색상을 선택할 수 있습니다 .
https://www.ralfebert.de/ios-examples/uikit/swift-uicolor-picker/
참고URL : https://stackoverflow.com/questions/25837228/how-to-set-textcolor-of-uilabel-in-swift
'UFO ET IT' 카테고리의 다른 글
파이썬을 사용하여 한 쌍의 비선형 방정식을 푸는 방법은 무엇입니까? (0) | 2020.12.04 |
---|---|
크롬 : 포스트 데이터의 출처? (0) | 2020.12.04 |
R에는 Python과 같은 startswith 또는 endswith 기능이 있습니까? (0) | 2020.12.03 |
RSpec의 주제와 let의 차이점은 무엇입니까? (0) | 2020.12.03 |
이름이 'recipient'인 양식 컨트롤에 대한 값 접근자가 없습니다. (0) | 2020.12.03 |