Я подклассифицирую CALayer
и выполняя индивидуальный чертеж в методе drawInContext:
.сделать пользовательский подкласс CALayer автоматически перерисовываться после добавления в супер-слой
Проблема в том, мне нужно вручную вызвать setNeedsDisplay:
после того как я добавить экземпляр моего подкласса к superlayer, что-то вроде:
MyCustomLayer *instance = [MyCustomLayer layer];
//do some configurations
[self.view.layer addSublayer:instance];
[layer setNeedsDisplay]; //required
или рисунок не будет.
Но когда я использую буит в CALayer
подклассов (CATextLayer
, CAShapeLayer
и т.д.), вызов setNeedsDisplay:
не требуется, после добавления их в супер-слой. Могу ли я заставить свой подкласс вести себя как эти классы?
Чем вы отвечаете. Я закончил с использованием needsDisplayForKey: и проверил для ключей «transform» и «bounds». Для меня вызов displayIfNeeded или проверка только клавиши «transform» не работает для некоторых случаев с краем. – Chris