J'ai actuellement une interface utilisateur intégrée dans Interface Builder - il s'agit essentiellement d'une image de fond et de quelques étiquettes. J'ai besoin d'animer certains éléments (images) sous les étiquettes mais sur le fond, mais j'ai aussi besoin de les dessiner dans un ordre z spécifique. Je regardais autour de moi et je suis tombé sur CATransformLayer-- Je suis toujours à la recherche. Est-ce la meilleure façon de gérer l'ordre des images en Z afin de simuler la 3D? Je ne veux pas utiliser Open GL comme l'animation que je fais sera très simple 3D faux ...Modifier l'ordre de tirage de l'interface utilisateur sur l'iPhone
Répondre
Contexte:
sur iPhone, UIViews ont une sous-vue NSArray. La racine, une UIWindow est dessinée en premier, puis ses sous-vues dans l'ordre, puis leurs sous-vues. De plus, il existe une deuxième hiérarchie: chaque UIView possède un tableau CALayer. Le CALayer racine dessine d'abord, puis chaque CALayer dans l'ordre.
Suggestion:
Oui, vous pouvez le faire comme vous l'avez décrit. Toutefois, le code peut être un peu plus simple si vous procédez comme suit:
Dans votre cas spécifique, utilisez un UIView pour tenir l'arrière-plan. Donnez-lui deux sous-vues, initialement transparentes, en taille réelle, avec des ressorts et des entretoises dans Interface Builder pour conserver la taille totale de l'arrière-plan. Disposez-les dans la vue en plan d'Interface Builder (-0) de sorte que l'UIView ImageViewHolder soit répertorié avant UIView ButtonViewHolder. De cette façon, vous pouvez insérer et supprimer des UIImageViews de l'UIView ImageViewHolder, et ils seront dessinés au-dessus de l'arrière-plan, et en dessous des UIButtons.
- 1. Cases de tirage Matplotlib
- 2. ligne de tirage sur uilable après le chargement de nib
- 3. Github: Fusionner lors des demandes de tirage
- 4. Durée du tirage
- 5. Modifier les alignements de l'interface utilisateur ASP.NET
- 6. texte de tirage en utilisant CoreGraphics dans iphone
- 7. Est-ce que l'ordre de départ de ce tirage sur stdout est garanti?
- 8. Création d'un fil de tirage indépendant utilisant pthreads (C++)
- 9. L'orientation de UIView est incorrecte après le premier tirage
- 10. Définir "opacité" d'un CGLayer avant le tirage?
- 11. Comment empêcher un utilisateur TFS de modifier un projet spécifique?
- 12. Modifier les paramètres utilisateur locaux de l'intérieur C#
- 13. Modifier la tête de page dans le contrôle utilisateur
- 14. mettre à jour (modifier) utilisateur php
- 15. Expression régulière pour modifier l'entrée utilisateur
- 16. Modifier le comportement de gestion des entrées utilisateur DataGridViewCell
- 17. Dans GTK, comment modifier le texte de la langue localisée sur l'interface utilisateur pendant son exécution?
- 18. Modifier l'agent utilisateur du navigateur Java SWT
- 19. comment modifier les paramètres utilisateur .NET emplacement
- 20. Un utilisateur malveillant peut-il modifier $ _SESSION?
- 21. Modifier le contenu de l'onglet sur le bouton cliquez sur
- 22. Comment vais-je créer des informations de tirage de fichier pdf de plomb
- 23. Modifier le lien sur un sitemap basé sur si un utilisateur est connecté?
- 24. La vitesse de décodage incroyable de GDI +, et la vitesse de tirage terrible!
- 25. Modifier l'ancien message de validation sur Git
- 26. Bouton Modifier sur le contrôleur de navigation
- 27. Modifier l'image de l'UIbutton sur le clic
- 28. ASP.NET Messages utilisateur sur MasterPages
- 29. Modifier le contenu DIV sur SELECT modifier
- 30. NullReferenceException sur le handle de contrôle utilisateur
Merci! Donc, si j'ajoute 3 UIImageViews différents dans une vue ImageViewHolder, la vue que j'ajoute en dernier ou en premier dessine-t-elle dessus? Aussi, si la première vue que j'ai ajoutée dessine en bas, y a-t-il un moyen de la garder au-dessus? –
- [addSubview:] le met à la fin, donc il dessine en dernier, mais UIView a des méthodes supplémentaires pour vous permettre de le mettre où vous le voulez dans l'ordre de tirage. N'utilisez pas les méthodes ordinaires NSMutableArray pour modifier le tableau de sous-vues, cependant. – DavidPhillipOster
Merci pour votre aide. Il semble que je puisse utiliser des choses comme bringSubviewToFront pour faire ce que je veux :) –