Я создаю книжку с картинками для iPad с CoreAnimation. Я сделал что-то вроде класса Sprite (подкласс CALayer), чтобы иметь возможность загружать мои кадры анимации из листа спрайта. Нечто похожее, чем здесь: http://mysterycoconut.com/blog/2011/01/cag1/.
Я не использую делегат слоя для установки границ и содержимогоRect (и в моем случае также позиции), но я делаю это непосредственно в методе -display подкласса CALayer.
Я создал манекен, и он работал отлично. Когда я переместил код в свой проект, метод -display моего подкласса больше не вызывался. Я много раз читал документацию по CALayer и Руководству по программированию CoreAnimation и не могу найти никакой информации о том, когда вызывается метод -display. Я только знаю, что он использует шаблон шаблона, это означает, что я не должен вызывать его сам, но вместо этого должен вызываться [layer setNeedsDisplay], который вызывает сам метод -display. Я тоже пытался это сделать, но безуспешно.
Если вам нужно увидеть какой-нибудь код, дайте мне знать.
Есть идеи?
UPDATE
Я нашел причину, по которой метод не вызывался. Это так неловко, что не стоит упоминать: 0. В любом случае, мне все равно было бы интересно узнать, когда именно вызывается метод -display. Я заметил, что мне нужно создать анимацию, чтобы она запускалась. Если бы я только добавил слой в иерархию отображения с помощью [layer addSublayer: myCustomLayer], метод не был вызван.