2015-10-04 1 views
0

Contexte: On suppose que vous êtes dans la "override func drawRect (rect: CGRect)" méthode d'une classe UIView personnalisée (appeler Voir 1), puisComment créer et dessiner dans une sous-vue par programmation, dans la même section de code, dans IOS Swift?

Question: Quel serait le code, le tout dans ce drawRect méthode à partir de la vue 1 (c'est-à-dire dans la même méthode dans le même fichier, donc sans créer une autre classe), pour créer une sous-vue (appelez-la View 2) et y dessiner. Alors disons que par programmation:

  • Créer une sous-vue (Voir 2)
  • Aspirer dans cette sous-vue (par exemple un UIBezierPath)
  • Ajouter des méthodes pour cette sous-vue, par exemple pour le toucher (par exemple touchesMoved: withEvent :)
  • Ajouter cette sous-vue (Voir 2) dans la vue 1

Est-ce possible? Ou un tel dessin dans IOS/Swift vous oblige-t-il réellement à créer une nouvelle classe (par exemple une sous-classe personnalisée de UIView) pour cela?

EDIT/MORE CONTEXTE: J'ai rencontré CoronaSDK et j'ai essayé de comprendre l'approche IOS/Swift. En couronne par exemple vous pouvez, dans la même méthode, faire quelque chose comme: - dessiner un visage comme un cercle - insérer des yeux comme images séparées - insérer un nez comme dire un chemin de ligne - pour chacun de ces ajouter des auditeurs avec méthodes spécifiques (par exemple, si toucher l'œil gauche puis faire X, etc)

Donc tout cela dans un fichier (même méthode même). Donc j'essaie maintenant d'envelopper IOS et il semble que dans ce cas il faudrait des fichiers séparés définissant des classes UIView personnalisées pour chacun d'entre eux. Il semble qu'ils doivent être UIViews (comme les couches n'acceptent pas le toucher), et aussi pour définir leurs propres rappels pour les événements tactiles (?)

+0

Il est pratiquement impossible de dessiner dans cette vue ou d'ajouter des méthodes. Même si c'était possible, cela n'a pas de sens. L'ajout d'une sous-vue dans la méthode 'drawRect' entraînerait l'ajout de plusieurs sous-vues à moins que vous n'ayez ajouté une solution de contournement. Quelles sont vos exigences? Pourquoi pensez-vous de le faire de cette façon? – Adam

+0

Je rencontre Corona et il est possible de faire des choses comme ajouter des objets en tant que sous-vues (bien "insert group") dans la même méthode et y attacher des écouteurs. Essayer de comprendre IOS/Swift ici – Greg

Répondre

1

Pour les applications d'entreprise, vous regardez UIView et d'autres sous-vues, etc. Et pour jeux, je pense que vous devriez regarder dans SpritKit, il suffit de chercher « Swift SpritKit », vous devriez obtenir beaucoup d'informations, comme un bon tutoriel ici:

http://www.raywenderlich.com/119815/sprite-kit-swift-2-tutorial-for-beginners

vous verrez les similitudes que vous recherchez entre CoronaSDK & Swift. Je me suis également tourné vers Swift de Corona. Et je regrette vraiment de ne pas avoir choisi le développement autochtone directement il y a deux ans.