Vous devriez être en mesure d'implémenter ceci via Quartz Core en utilisant des calques (voir la documentation de la classe CALayer). En effet, vous pouvez avoir des hiérarchies de calques. Cependant, comme indiqué plus haut, tenez compte de la charge lourde. Pour quelques secondes, il peut être acceptable cependant.
Fondamentalement, vous associez chaque UIView à un calque différent, puis les calques sont rendus ensemble fournissant un seul calque composite. En outre, vous pouvez également appliquer des transformations et des animations aux calques.
Vous devez importer l'en-tête de QuartzCore et faire quelque chose comme
#import <QuartzCore/QuartzCore.h>
UIView *myView = [[UIView alloc] initWithFrame...
UIView *myMoviewView = [UIView alloc] initWithFrame...
CaLayer *myViewLayer = myView.layer;
[myViewLayer addSubLayer: myMoviewView];
Puis, quand myView apparaît à l'écran, tous les sous-couches sont fusionnées ensemble et rendu à l'écran. Ce qui se passe est que chaque vue rend son calque, tandis que myViewLayer est rendu fusionnant les deux calques.
Vous pouvez avoir autant de couches que vous le souhaitez. Vous pouvez créer une hiérarchie arbitraire en utilisant les méthodes CALayer
– addSublayer: – removeFromSuperlayer
– insertSublayer:atIndex:
– insertSublayer:below:
– insertSublayer:above:
– replaceSublayer:with:
Excellente réponse, merci beaucoup d'avoir pris le temps de m'expliquer cela :) – Wayners247