loginButton.backgroundColor = UIColor(named: "theme01PointColor01")
loginButton.isEnabled = true
문제의 코드다.
저 코드는 뷰 컨트롤러에서 UIView를 이용해 구현한 코드이다.
나는 button의 background버튼을 바꾸고 싶었다.
버튼은 UIView로 구현을 했다. UIView를 처음써봐서 생긴 실수였다.
버튼에 색을 줘야하는데 버튼의 뷰에 색을 줘버린것이다.
위의 코드에 버튼에 색을 주고싶다면 어떻게 해야할까?
class ButtonTappedView: UIView {
weak var delegate: ButtonTappedViewDelegate?
//버튼
private lazy var anyButton : UIButton = {
let button = UIButton()
button.backgroundColor = UIColor(named: "theme01PointColor03")
button.layer.cornerRadius = 5
button.layer.masksToBounds = true
//button.isEnabled = false //버튼을 비활성화 해주는 코드(나중에 색깔 변하게 해서 활성화 시켜줄거임
button.addTarget(self, action: #selector(buttonTapped), for: .touchUpInside)
return button
}()
먼저 뷰를 살펴보자. 나는 뷰에 anyButton이라는 버튼을 만들었다.
버튼에 색을 주기위해 먼저 함수를 하나 만들었다.
func changeButtonColor (color: UIColor?) {
anyButton.backgroundColor = color
}
이렇게 말이다. 버튼 의 배경색깔을 바꾸는 함수이다. 그리고 아까 위의 코드를 저 함수를 이용해서 고쳐볼거다.
loginButton.changeButtonColor(color: UIColor(named: "theme01PointColor01"))
loginButton.isEnabled = true
다른점이 보이는가? 나는 저 함수를 이용해 view가 아닌 뷰의 버튼에 색깔을 주었다.
버튼의 글자 색깔을 변경하고 싶다면 아래의 코드를 사용하면 된다.
func changeTitleColor (color: UIColor?) {
anyButton.setTitleColor(color, for: .normal)
}
피드백은 댓글로 부탁합니다.
'swift공부' 카테고리의 다른 글
Cannot infer contextual base in reference to member 'subheadline' (0) | 2023.10.23 |
---|---|
UIView의 오토레이아웃을 설정하다 알게된 것 (0) | 2023.10.23 |