Je développe une sorte de jeu de cartes dans lequel mes objets de vue (cartes, etc.) sont tous CALayers. Ces objets sont ajoutés en tant que sous-couches d'un mainBoard
(un CALayer), qui, à son tour, est une sous-couche de la propriété [UIView layer]
de mon mainView
. Tout est OK, je peux faire des tests de hit pour vérifier quelle couche est touchée par le rappel touchesBegan:withEvent:
de la classe mainView
normalement, et ainsi de suite.UIScrollView à l'intérieur d'un CALayer
Cependant, je dois avoir un parchemin dans mon mainBoard
pour montrer « plus gros » CALayers, alors j'ai essayé ajoutant d'abord le « plus grand » CALayer dans un CAScrollLayer
, mais je remarque que la CAScrollLayer
ne défile pas vraiment (n » t gérer l'entrée de l'utilisateur, ni dessiner les barres de défilement). Ainsi, la solution de contournement serait d'ajouter un UIScrollView directement à l'UIView mainView
. Le UIScrollView
défile parfaitement, jusqu'à ce que j'essaie d'ajouter le "plus grand" calque, en utilisant [scrollView.layer addSublayer:<bigger layer>]
.
Quelqu'un at-il une idée de la façon dont je peux avoir des objets "scrollable" à l'intérieur d'un CALayer?
Merci!
ce qui se passe exactement lors de l'ajout de grandes couches au scrollview ?, De plus, je pense que l'ajout directement à scrollView.layer souscouche n'est pas une bonne idée, pourquoi ne pas les ajouter à une couche d'une vue contenue par votre scrollview? – nacho4d
Pouvez-vous définir ce que sont les CALayers "plus gros"? Pouvez-vous décrire brièvement pourquoi les "plus gros" éléments doivent être CALayers? En lisant votre question, je me demande pourquoi vous ne restez pas simple et utilisez juste UIScrollView - il a tout ce que vous avez demandé, ce qui serait mieux de ne pas ré-implémenter. – Mark
Toute mon application est constituée d'objets CALayers car je travaille au niveau de l'animation Core au lieu du niveau d'abstraction UIKit. Le problème est que Core Animation ne fournit pas de composant Scrollable, donc j'ai dû faire une solution de contournement en mélangeant des objets UIKit (UIScrollView) et des objets CoreAnimation (CALayers) et en les faisant fonctionner de façon transparente. Ce n'est pas un problème car UIKit n'est qu'un emballage pour CoreAnimation. Merci –