UIButton, UIView 및 UITextField와 같은 UIComponents를 변경해야하는 요구 사항이 있습니다. 내가해야 할 일은 디폴트 인 예리한 사각형이 아니라 둥근 테두리의 반경을 변경하는 것입니다.뷰를 서브 클래 싱하는 동안 코드 중복성을 줄이는 방법은 무엇입니까?
- (void)drawRect:(CGRect)rect {
// Drawing code
CALayer *layer = [self layer];
[layer setMasksToBounds:YES];
[layer setCornerRadius:3.0f];
[layer setBorderWidth:1.0f];
}
:
나는이 작업을 수행 한 방법은 UITextField에 UITextFieldRoundCorner과 나는이와의 drawRect 방법을 재정의 한 각 서브 클래스 내에서 UIButtonRoundCorner, 에 UIViewRoundCorner, 있는 UIButton에 UIView의 하위 클래스입니다 코드가 중복되어이 중복성을 제거하는 방법을 알아 내려고합니다. 이 모든 요소는 UIView에서 상속되므로 UIView를 하위 클래스로 만들고 다른 모든 뷰에서 구현할 수 있습니까?
참고 - 레이어를 조정하기 위해'drawRect :'를 사용하는 것은 옳지 않습니다. 'drawRect :'는 컨트롤의 수명에서 여러 번 호출 될 수 있지만 레이어를 한 번만 조정하면됩니다. 적절한'init ... '메소드에서 그것을 수행하십시오. – rmaddy
제안 해 주셔서 감사합니다 :). 나는 즉시 시행 할 것이다. –