사용자 지정 개체가 있으며 NSObject에서 상속합니다. 이 객체는 "몇 가지"를 수행합니다. 그 중 하나는 UIKit 객체 (UILabel, UIButtons ecc ecc ...)가있는 UIView를 만드는 것입니다. 이 객체에는 포함 된 UIKit 객체의 모양을 사용자 정의하는 데 사용되는 textColor, font, backgroundColor ...와 같은 몇 가지 속성이 있습니다.사용자 지정 개체에 대한 UIA 유사 프록시
이 개체의 모든 생성 된 인스턴스에 대해이 속성을 "원샷"으로 사용자 지정하고 UIAppearance 프로토콜을 살펴 보았습니다.
표준 UIKit 객체는 이미 UIAppearance 프로토콜을 준수하지만 모든 UILabels 또는 UIButton에 스타일을 적용하고 싶지 않습니다. 내 개체 인스턴스 안에 포함 된 UILabels 및 UIButtons에만 스타일을 적용하고 싶습니다. 또한, 사용자 정의 개체를 사용하는 개발자가 그 안에 "포함 된"개체의 종류를 알지 못하기 때문에 appearanceWhenContainedIn을 사용할 수 없습니다 (그리고 나는 원하지 않습니다).
그래서, 내 사용자 지정 개체를 UIAppearance 프로토콜을 따르는 방법을 살펴 보았습니다.
AFAIK 그것은
+ (id)appearance
방법을 구현해야합니다. 이 메서드는 모든 사용자 지정을 보낼 수있는 프록시 개체를 반환해야합니다. 그러나 UIKit 객체의 모양 메서드를 살펴보면 개인 객체가 반환되는 것을 알 수 있습니다. _UIAppearance 클래스의 객체입니다.
그래서 내 생각에 애플은 내 자신을 커스터마이징하기위한 표준 프록시 객체를 제공하지 않는다. 맞습니까, 아니면 무언가를 잃어 가고 있습니까?
감사
잘 작동합니다. 클래스 계층 구조를 확장하여 부모 클래스의 옵션도 설정할 수 있도록 확장했습니다. https://gist.github.com/vkodocha/5500276 (코드는 인라인을 추가하는 데 길어집니다). – Chris
멋진 작품! 개선 사항으로'id' 대신에'instancetype'을 리턴 타입으로 사용할 수 있습니다. 따라서 명시 적 캐스트를 건너 뛸 수 있습니다. 'FLAppearance'. –
@GabrielePetronella 힌트를 보내 주셔서 감사합니다 .-) – LombaX