Création d'un bouton flèche gauche (comme UINavigationBar du “retour” de style) sur un UIToolbar
J'aimerais créer un "retour" à gauche-flèche-lunette bouton dans un UIToolbar
.
Aussi loin que je peux dire, la seule façon d'obtenir l'un de ces est de laisser UINavigationController
paramètres par défaut et il n'utilise que pour la barre de gauche de l'élément. Mais il n'y a aucun moyen que je peux trouver pour créer un comme un UIBarButtonItem
, donc je ne peux pas faire un dans un standard UIToolbar
, même si ils sont très similaires à UINavigationBar
s.
J'ai pu créer manuellement avec le bouton images, mais je ne trouve pas la source des images n'importe où. Ils ont de canal alpha bords, de sorte screenshotting et la découpe de ne pas obtenir de très polyvalent résultats.
Des idées au-delà de screenshotting pour toutes les tailles et les couleurs j'ai l'intention de l'utiliser?
Mise à jour: s'il vous PLAÎT ARRÊTER en esquivant la question et en suggérant que je ne devrais pas être en demandant cela, et devrait être à l'aide de UINavigationBar
. Mon application est Instapaper Pro. Il ne montre qu'une barre d'outils en bas (pour économiser de l'espace et de maximiser lisible de la zone de contenu), et je souhaite mettre en flèche gauche-Retour en forme de bouton dans le bas.
Me disant que je ne devrais pas besoin de le faire n'est pas une réponse et certainement ne mérite pas un bounty.
- Question connexe: Tirage personnalisé bouton de Retour sur iPhone Barre de Navigation
- à partir de @Oxced : github.com/0xced/UIKit-Artwork-Extractor
Vous devez vous connecter pour publier un commentaire.
J'ai utilisé le suivant psd que j'ai tiré de http://www.teehanlax.com/blog/?p=447
http://www.chrisandtennille.com/pictures/backbutton.psd
J'ai ensuite créé une coutume UIView que j'utilise dans les customView propriété de l'élément de barre d'outils.
Fonctionne bien pour moi.
Edit: Comme l'a souligné PrairieHippo, maralbjo trouvé que l'utilisation de la suivante, simple code a fait le tour (nécessite une image personnalisée en bundle) doit être combinée avec cette réponse. Voici donc un code supplémentaire:
L'Unicode Méthode
Je pense qu'il est beaucoup plus facile de simplement utiliser un caractère unicode pour faire le travail. Vous pouvez regarder à travers les flèches par googler soit Unicode Triangles ou Unicode Flèches. Départ avec iOS6 Apple a changé le personnage à un emoji caractère avec une bordure. Pour désactiver la frontière-je ajouter de la 0xFE0E Unicode Sélecteur De Variante.
Le bloc de code est juste pour la démo. Il serait de travailler dans n'importe quel bouton qui accepte un NSString.
Pour une liste complète des caractères de recherche Google pour les caractères Unicode et ce que vous voulez. Ici est l'entrée pour Noir Pointant Vers La Gauche Triangle.
Résultat
AVERTISSEMENT: Il ya des rapports que cela ne fonctionne pas sur iOS 6. Cela peut ne fonctionner que sur les anciennes versions de l'OS. De toute évidence, au moins un dev a eu leur application rejeté pour l'utilisation de cette astuce (voir les commentaires). Utilisez à vos propres risques. À l'aide d'une image (voir la réponse ci-dessus) peut être une solution plus sûre.
Cela peut être fait sans l'ajout de vos propres fichiers d'image à l'aide de sekr1t de type bouton-101 pour obtenir la bonne forme. Pour moi, l'astuce a été de comprendre que je pouvais utiliser
initWithCustomView
pour créer leBarButtonItem
. Personnellement, j'ai besoin de cette dynamique pour un navbar plutôt qu'untoolbar
, mais je l'ai testé avec une barre d'outils et le code est presque le même:Si vous faites cela sur une barre d'outils que vous devez l'ajuster la façon dont vous définissez les éléments, mais cela dépend du reste de ton code et je l'ai laisser cela comme un exercice pour le lecteur. 😛 Cet échantillon a fonctionné pour moi (compilé & run).
Bla bla, lire le HIG, ne pas utiliser de fonctionnalités non documentées, et tout ça. Il y a seulement six pris en charge types de bouton et ce n'est pas l'un d'eux.
Tout d'abord, vous devez trouver une image du bouton retour. J'ai utilisé une application agréable, appelé Extracteur que des extraits de tous les éléments graphiques de l'iPhone.
Dans iOS7 j'ai réussi à récupérer l'image appelée
UINavigationBarBackIndicatorDefault
et il était de couleur noir, car j'avais besoin d'une teinte rougeje change la couleur de rouge à l'aide de Gimp.EDIT:
Comme cela a été mentionné par btate dans son commentaire, il n'est pas nécessaire de changer la couleur de l'image de l'éditeur. Le code suivant devrait faire l'affaire:
Puis j'ai créé une vue qui contient une imageView avec la flèche, une étiquette avec le texte personnalisé et sur le haut de la vue que j'ai un bouton avec une action. Ensuite, j'ai ajouté une animation simple (à la décoloration et à la traduction).
Le code suivant simule le comportement du bouton de retour, y compris l'animation.
EDIT:
Au lieu d'ajouter le bouton, à mon avis, la meilleure approche est d'utiliser un geste de reconnaissance.
imageView.tint = [UIColor redColor]
et le modèle, le mode de rendu sur l'image.imageView.image = [yourImage imageWithRenderingMode:UIImageRenderingModeAlwaysTemplate];
Je ne sais pas si ça allait fonctionner, mais vous pouvez essayer de créer un
UINavigationController
avec les paramètres par défaut pour créer le bouton, trouver le bouton de la manette de navigation du sous-vue de la hiérarchie, appelremoveFromSuperview
sur elle, détruire la manette de navigation, puis ajouter le bouton comme une sous-vue de votre barre d'outils. Vous pouvez aussi avoir besoin deretain
et le bouton avant d'appelerremoveFromSuperview
(et puisrelease
après l'ajouter en tant que sous-vue de votre barre d'outils) pour éviter d'être libéré pendant le processus.De faire un UIButton avec une flèche assez proche (je ne suis pas un designer 😉 pour l'iOS 7 système de flèche de retour:
Standard:
Apple SD Gothique les Néo
Dans Xcode:
Ref @staticVoidMan réponse à Dos-comme des flèches sur iOS 7
Si vous ne voulez pas vous embêter avec les fichiers d'image, la forme d'une flèche peut être établi dans une sous-classe UIView avec le code suivant:
où l'affichage flèche est proportionnelle à une largeur de 6.0 et d'une hauteur de 10,0
Fonctionne pour moi. Je l'utilise quand j'ai eu plus d'onglets, puis pourrait tenir sur la barre d'onglet, et une vue contrôleur de pression de l' "Plus" prime sur le leftBarButtonItem dans son viewDidLoad.
Vous pouvez trouver la source des images par leur extraction à partir d'Autres.illustration dans UIKit ${SDKROOT}/System/Library/Frameworks/UIKit.cadre/Autres.les illustrations. La communauté modding a quelques outils pour l'extraction, ici. Une fois que vous avez extrait l'image, vous pouvez écrire du code pour changer la couleur en tant que de besoin et de le définir comme l'image du bouton. Si oui ou non vous pouvez réellement expédier une telle chose (puisque vous êtes l'incorporation dérivé des illustrations) peut être un peu risqué, alors peut-être vous voulez parler à un avocat.
La Three20 bibliothèque a un moyen de le faire:
J'ai trouvé que l'utilisation de la suivante, simple code a fait le tour (nécessite une image personnalisée en bundle):
Voici ce que j'ai fait après une recherche par le biais de toutes ces solutions et autres. Il utilise un extensible png qui est extrait de la UIKit images en stock. De cette façon, vous pouvez définir le texte que vous comme
C'est facile à faire avec Interface Builder dans Xcode 5.x
utilisation Barre d'outils et Bouton de la Barre d'Élément de bibliothèque d'Objets
de boutons Attributs de l'inspecteur de modifier Image section
avec votre dos de l'image du bouton
Fait!
J'ai essayé de faire la même chose, mais je voulais le bouton retour pour être dans la barre de navigation. (J'ai vraiment besoin d'un bouton de retour, cela ne serait plus que de retourner, donc j'ai dû utiliser la leftBarButtonItem de la propriété). J'ai essayé ce que AndrewS suggéré, mais dans la barre de navigation, il ne serait pas regarder la façon dont il devrait, comme le UIButton était une sorte de intégré à une UIBarButtonItem.
Mais j'ai trouvé un moyen de contourner cela. En fait je viens de mettre une UIView en vertu de la UIButton et définir la customView pour la UIBarButtonItem. Voici le code, si quelqu'un en a besoin:
De créer une image pour la UIToolbar, faire un png dans photoshop et OÙ JAMAIS il n'y a AUCUNE couleur, il met en blanc, et où il est en alpha = 0 alors il le laisse tranquille.
Le SDK effectivement mis de la frontière autour de l'icône que vous avez fait et se transforme en blanc, sans que vous ayez à faire quoi que ce soit.
Voir, c'est ce que j'ai fait dans Photoshop pour mon bouton d'avance (évidemment il échange autour pour le bouton de retour):
http://twitpic.com/1oanv
et c'est ce qu'il est apparu comme dans Interface Builder
http://twitpic.com/1oaoa
Solution SANS l'aide d'un png. Sur cette base DONC réponse: L'ajout de la petite flèche sur le côté droit d'une cellule dans un iPhone TableView Cellule
Juste en feuilletant les UITableViewCell à l'horizontale!
Si vous voulez éviter de tirer vous-même, vous pouvez utiliser la classe non: UINavigationButton avec style 1. Cela pourrait, bien sûr, d'arrêter votre demande soit approuvée...
/John
Bien, vous n'avez pas à avoir un bouton différent pour chaque taille, vous pouvez utiliser
[UIImage stretchableImageWithLeftCapWidth:topCapHeight:]
, mais la seule chose que j'ai trouvé est d'images personnalisées.J'ai eu un problème similaire, et en sortir une bibliothèque PButton. Et l'échantillon est à l'arrière du bouton de navigation bouton "like", qui peut être utilisé n'importe où comme un bouton personnalisé.
Quelque chose comme ceci:
Exemple dans Swift 3, avec un précédent et un bouton "suivant" en haut à droite.
Swift
De l'essayer. Je suis sûr que vous n'avez pas besoin d'un bouton de retour de l'image pour créer une de ces.
C'est tout ce que vous avez à faire 🙂
Pourquoi faites-vous cela? Si vous voulez quelque chose qui ressemble à une barre de navigation, utilisez UINavigationBar.
Barres d'outils spécifiques style visuel associé avec eux. Le Human Interface Guidelines pour l'iPhone état:
Il donne ensuite plusieurs exemples visuels de près de la place des icônes sans texte. Je vous invite à suivre le HIG sur ce.