Como posso subclasse CALayer para retornar uma camada pré-estilo?
-
05-07-2019 - |
Pergunta
Como você subclasse CALayer para que você retornar uma camada com styling propriedades já definido?
Assim que:
MyCustomLayer *layer = [MyCustomLayer layer];
criaria uma camada com estas propriedades;
layer.backgroundColor = sweetBackgroundColor.CGColor;
layer.borderColor = sweetBorderColor.CGColor;
layer.borderWidth = 2.0;
layer.cornerRadius = 8.0;
Assim que eu posso apenas definir sua estrutura e adicioná-lo à árvore.
Mas eu acho que a minha pergunta realmente só poderia ser, como você subclasse um objeto para que ele tenha propriedades já definido na criação. Possível?
Solução
-init Apenas override (o designado initializer para CALayer) na sua subclasse, e definir essas propriedades em sua substituição. Qualquer método de criação, incluindo -layer, deve acabar encaminhamento através do inicializador designado, ou seja, a sua configuração extra vai acontecer mesmo para os construtores de conveniência.