Question

Ce que j'essaie de faire est de répliquer le NSTokenField comme UITextField vu dans les applications Mail et Messages (tapez un contact et des suggestions vous sont proposées).

J'ai l'auto-complétion qui fonctionne parfaitement. Lorsque vous tapez dans un UITextField, un UITableView apparaît affichant toutes les correspondances qu'il peut trouver dans un tableau, lorsque vous cliquez sur un élément, il l'ajoute à UITextField. Je suis vraiment heureux avec cela jusqu'à présent.

Le problème que je rencontre maintenant est de faire en sorte que les contrôles ressemblent à ceux des applications natives. Après tout, le design est tout!

Ma première question est de savoir comment puis-je ajouter cette apparence d’ombre à UITableView? On dirait qu'il s'est effondré derrière le UITextField.

Deuxièmement, je sais que je vais devoir sous-classer UITextField pour lui donner l’apparence souhaitée, mais je ne sais pas par où commencer. Quelques pointeurs ou un échantillon serait génial!

Enfin, je pense avoir besoin de créer un UIButton personnalisé avec un espace pour le texte et le dégradé bleu, puis de l'ajouter à UITextField. Même problème que pour UITextField, vous ne savez pas vraiment comment sous-classer UIButton (quelles méthodes il doit dessiner et ce qu'il a besoin de fourrer) ni comment l'ajouter à UITextField de manière à ce que lorsque vous cliquez sur le bouton retour arrière dans UITextField, le bouton être mis en surbrillance, puis supprimé si vous cliquez à nouveau sur le retour arrière (exactement comment fonctionne NSTokenField).

J'ai inclus une image pour que vous puissiez voir de quoi je parle: http://www.thermoglobalnuclearwar.com/stuff/mail.jpg

J'ai jeté un coup d'œil au projet Joe Hewitts Three20 mais je ne pouvais en faire ni tête ni tête. J'aimerais commencer très simplement et comprendre tout ce qui se passe plutôt que de simplement glisser son code dans le mien et de ne pas avoir la moindre idée de ce qui se passe!

Toute aide est grandement appréciée!

Merci, Tom.

Était-ce utile?

La solution 2

D'accord, j'ai l'ombre sous le champ UITextField et j'ai ajouté le "To:": étiquette à elle. Ça a l'air génial!

Donc, le dernier élément est le NSToken bleu comme contrôle J'ai commencé à penser que le plus simple était de sous-classer une UIView et de dessiner le dégradé bleu et l'étiquette à l'intérieur. Ce qui m'amène à d'autres questions:

J'ai trouvé ceci: http://github.com/leonho/iphone-libs / tree / master qui dessine une belle vue arrondie et que j’ai adaptée pour y ajouter du texte plutôt qu’un nombre, ce que je ne sais pas faire, c’est dessiner un dégradé au lieu d’un bloc plein de couleur.

Après cela, il ne reste plus qu'à ajouter les vues arrondies à UITextField, à déplacer le curseur et à déterminer comment supprimer les vues lorsque le curseur les atteint, mais je m'attaquerai à cela quand il le faudra.

Autres conseils

Avez-vous envisagé d'utiliser la bibliothèque Three20 ? Il contient un contrôle qui, je pense, fait ce que vous voulez (TTPickerTextView).

Comme l'indique la description du site Web

  

TTPickerTextField est un type à suivre UITextField . Au fur et à mesure que vous tapez, il cherche une source de données et   ajoute des bulles dans le flux de texte lorsque vous choisissez une option de frappe anticipée. Je l'utilise dans   TTMessageController pour la sélection du nom des destinataires du message.

Au minimum, le code source peut vous donner des indications sur la manière de réaliser les différents effets visuels.

Licencié sous: CC-BY-SA avec attribution
Non affilié à StackOverflow
scroll top