나는 이해가 안 뷰 객체 (있는 UIButton) 에서 상속하는 클래스를 만든 이유는 무엇 성공할 FUNC 초기화 또는로 awakeFromNib에서의 drawRect FUNC에 추가의 backgroundColor를 변경하기 위해 노력하고있어 때 하지만 나는 drawRect func (예 : self.layer.cornerRadius)에 을 추가하는 레이어의 속성을 변경하려고합니다. init 또는 awakeFromNib func에 의해 변경되지 않습니다.IOS - drawRect func 레이어 속성을 변경할 수 없습니까?
두 가지 질문 : 1. 배경 화면에서 어떤 일이 일어 났는지 설명 할 수 있습니까? 2. drawRect func에 추가 된 레이어의 속성을 어떻게 변경할 수 있습니까? 내 흔들리는 영어 에 대한
죄송합니다 나는 분명히 충분히 :) 여기
내 간단한 예제 코드입니다 희망 :의 drawRect에서 추가되었다 내가 레이어의 속성을 변경하는 방법import UIKit
class Btn:UIButton {
required init?(coder aDecoder: NSCoder) {
super.init(coder: aDecoder);
self.backgroundColor=UIColor.cyanColor();
self.layer.borderWidth=1;
}
override func awakeFromNib() {
self.backgroundColor=UIColor.brownColor(); // it was changed to brown
self.layer.borderWidth=3; // it changed to 3
self.layer.cornerRadius=20;// it doesn't changed to 20
// it's stay 5 from drawRect func (down here) whyyy???
}
override func drawRect(rect: CGRect) {
self.backgroundColor=UIColor.greenColor();
self.layer.cornerRadius=5;
}
}
나는 그 질문을 이해할 수 없다고 생각합니다. 'drawRect'는'awakeFromNib' 이후에 호출됩니다. 그래서 둘 다 설정한다면'drawRect'는'awakeFromNib'에있는 것을 덮어 쓰려고 할 것입니다 – dan
그래서 backgroundColor는 갈색입니다, 당신의 대답에 따라 drawRect awakeFromNib에서 하나를 덮어 씁니다. 왜 내가 greenColor를 보지 못합니까 ?? –