Что именно должно происходить в методах display / drawRect CALayer? - PullRequest
2 голосов
/ 23 января 2011

Какой из этих методов будет подходящим для:

  • Изменить текст CATextLayer
  • Загрузить другое изображение в CAImageLayer
  • Скажите подслоям обновить себя

1 Ответ

6 голосов
/ 24 января 2011

Чувак, я могу быть пьяным ... но в CAlayers

НЕТ метода drawRect. Я думаю, что вы можете использовать drawInContext:, чтобы фактически (проглотить) привлечь к CALayers, но никто не человекдостаточно, чтобы сделать это со времен WW2.

Что касается отображения, вам не нужно его вызывать, оно в основном обновляет то, что вы установили, используя .contents.

Я просто использую .contents что-то вродеэто ...

[self.view setLayer:rearLayer];
[self.view setWantsLayer:YES];
rearLayer.frame = CGRectMake(gameBlah,gameBlah, 1024,768);
// note that we are dealing there with the mysteries of rearLayer positioning;
// it is measured by the SUPER layer of the layer in question!
// (indeed much as frame for the view is, if you think about it ..)
rearLayer.contents = (id)loadMacStylePng(@"spaceShip");

Скажем, у каждого хватило смелости написать свой собственный drawInContext: ...

В этом случае он вызывается (или абстрагируется ... или пересчитывается)или что-то), когда вы звоните displayAsNeeded.(Мне никогда не нужно было звонить displayAsNeeded:, это точно.)

...