2010-10-28 15 views
1

Voici ce que je dois faire:Quelle est la meilleure façon de le faire (iPhone SDK question UI)

Je vais avoir une barre d'outils avec plusieurs objets sur elle (pour cela, nous allons les appeler A, B, C , D) et je veux pouvoir faire en sorte que l'utilisateur les clique et les fasse glisser et soit capable de les accrocher à une grille et de se connecter les uns aux autres.

Cela vous semble facile, n'est-ce pas? Eh bien voici mon problème: certains objets sont de tailles différentes, donc A pourrait être un 1x1, B soit 1x3, C soit 3x4, etc.

Alors, comment dois-je faire cela? Je pensais juste avoir chaque élément comme un UIImageView séparé (ou UIView, ne l'ai pas encore décidé) qui peut être traîné, puis prendre sa position et voir quelles images sont à côté de lui.

Une autre chose est que je dois être en mesure d'exporter ces emplacements vers XML ou JSON (pas encore sûr, probablement xml)

Répondre

1

On dirait que vous avez besoin d'une sous-classe de UIView avec tessellation ou une sorte de sous-jacent système de coordonnées de grille avec les unités étant 1x1. Les 'tuiles' pourraient être sous-classées à partir de UIView, ayant une information de position UIImage et de grille. Si les tuiles adjacentes sont par définition connectées, vous n'aurez pas besoin d'informations d'état supplémentaires sur la connectivité. Et écrire cela serait aussi facile que d'écrire des origines.

Je travaille sur quelque chose de similaire, mais avec des carreaux de taille unique. Cela a été amusant - en particulier la logique d'insertion: positionner une tuile entre deux autres tuiles et déterminer ce qui est déplacé pour faire de la place.

+0

alors je devrais faire une "tuile" UIView pour chaque tuile que je veux? –

+0

Dans mon cas, toutes les 'mosaïques' sont des instances de Tile. Pour les déplacer, cependant, j'ai un conteneur UIView qui traite de la logique des mouvements et de la manipulation de touchesBegan :, touchesMoved: et touchEnded :. Je pense que vous pourriez faire quelque chose de similaire - sauf que tout ce qui change pour mes tuiles est le 'visage' (comme le Scrabble) et si elles sont face recto ou face cachée, les tiennes auraient aussi des dimensions x et y. – westsider

+0

Merci pour votre aide. Je ne l'ai pas fait comme tu l'as fait, mais ta méthode m'a conduit dans la bonne direction. –