Comment personnaliser FBLoginVIew?
Afin de vous connecter à facebook dans mon application ios, je suis en utilisant FBLoginVIew de Facebook SDK pour iOS.
Il montre une belle FB Bouton de Connexion, mais je veux utiliser ma propre image et du texte pour le bouton de connexion.
Le problème est que je ne vois nulle part comment la personnaliser.
J'ai réussi à changer le bouton de connexion de fond de l'image en remplaçant les images dans FacebookSDKResources.bundle/FBLoginView/images, mais je ne pouvais pas trouver où changer le bouton de connexion du texte et de la position, de sorte que c'est séjours "se Connecter"...
Solution, n'importe qui?
Merci
- La meilleure solution ici: stackoverflow.com/questions/22476820/...
Vous devez vous connecter pour publier un commentaire.
La réponse est d'aller sur la FBLoginView des sous-vues, trouver le bouton et l'étiquette et de les personnaliser.
Voici le code:
Je voulais être FBLoginview montre comme un UIBarbutton, j'ai Donc fait une approche simple:
Tout d'abord j'ai ajouté FBLoginView comme une propriété:
Et puis j'ai ajouté de la connexion de vue en dehors de la vue:
Et puis, j'ai ajouté un système standard UIbarbuttonItem
Et puis j'ai mis le bouton de la barre d'incendie cliquez sur l'action de la FBLoginView 😉
Quand j'écris cela, Facebook a déjà publié la version 3.0 de son SDK pour iOS.
ozba la réponse est un peu de travail, mais, à mon avis, il ne devrait pas être utilisé.
Ma solution est vraiment simple. Dans Facebook du dossier téléchargé, FacebookSDK, vous avez un dossier nommé Échantillons. Là, vous devez regarder dans la SessionLoginSample. Vous pouvez voir qu'ils ont un ordinaire Round Rect Button, qui, à travers le ViewController qui en est le propriétaire, qui a la FBLoginViewDelegate, il peut modifier le texte en fonction de la FBSession état. Croyez-moi, c'est vraiment simple.
Ou lisez la documentation de Facebook pour créer Votre Propre Bouton:
https://developers.facebook.com/docs/ios/login-tutorial/#login-apicalls
comme ceci:
modifier le texte dans l'Facebook regroupement de ressources fr.lproj Localizable.les chaînes ... je suppose qu'il fonctionne
Je suis entrain de créer un personnalisé FB touche de classe dans le cas où j'ai besoin de le recycler pour d'autres projets, C'est encore une première version, mais tente de changer l'image du bouton selon connecté etat et de gérer facilement sa taille.
Certaines méthodes sont pour juste au cas où.
Comme une note, vous pouvez aussi placer le bouton de la vue à partir de la POINTE de fichier en définissant sa classe à FBCustomLoginView et de son délégué, mais quelle que soit la taille que vous sera toujours réinitialisées à FBLoginView la taille par défaut, donc vous devez toujours définir la taille spécifique dans le code. (Je ne sais pas comment obtenir la taille du bloc de NSCoder pour éviter ce)
Code est QUE, vous pouvez l'éditer et sont responsable de tout les bugs, je vais modifier cette réponse que je trouve tout. J'espère que c'est utile à quelqu'un.
Dans le cas où vous l'ajouter à partir de la graine, vous avez juste l'adapter avec votre texte et des images, le reste fonctionne comme si c'était un FBLoginView:
FBCustomLoginView.h
FBCustomLoginView.m
Je crois que j'ai trouvé un moyen beaucoup plus facile de personnaliser le texte, par exemple, d'un FBSDKLoginButton sans avoir à créer un bouton personnalisé à partir de zéro qui contient toutes les fonctionnalité de login. C'est bien parce que le FBSDKLoginButton fait tout le travail - vous avez juste à modifier le texte. Désolé, je ne sais Swift...voici le code:
Profitez-en!
La réponse à tous vos problèmes, y compris l'étiquette après vous pressé est très simple:
C'est comme OZBA réponse vient de supprimer complètement le
UILabel
(ajouter:[loginLabel removeFromSuperview];
)C'est tout le code de travail:
S'il vous plaît, lisez le fichier README dans Facebook SDK. Vous devez ajouter la Ligne - FacebookBundleName en info.plist et de mettre un nom pour votre bundle. Ensuite, ajoutez un bundle pour votre projet avec ce nom et de le mettre dans des dossiers nommés "lang.lproj": par exemple: fr.lproj - il.lproj - fr.lproj - es.lproj.... Dans ce dossiers que vous devez ajouter la Localizable.fichier de chaînes, alors vous pouvez le localiser beaucoup de phrases, comme:
Espère que cela vous aide!
Je viens de trouver une réponse pour le texte du bouton de mise à jour lorsque vous appuyez sur le bouton de connexion. J'ai souffert du même problème.
Que diriez-essayez de définir le cadre de l'étiquette du bouton de CGRectMake(0,0,0,0).
Je l'ai essayé et je pense que cela a fonctionné.
Ajouter ce code à ozba réponse:
Espère que cette aide.
J'ai pensé au problème, et personnellement, je n'ai pas vraiment aimé la accepté de répondre... Pour diverses raisons.
Tout le monde est libre quelle que soit la solution qu'il aime, mais j'ai décidé de partager ma propre solution.
J'ai utilisé
respondsToSelector
au lieu deisKindOfClass
parce que la classe peut être personnalisé à l'avenir.[view respondsToSelector:@selector(setBackgroundImage:forState:)]
?Position de la FB afficher à l'écran, ou avec une taille de 0x0. Ensuite, définissez votre action du bouton pour envoyer le message buttonPressed: pour le FB de vue. Je pense que c'est le moyen le plus facile.
Dans Mon cas, j'ai créé un beau Bouton dans Photoshop et il suffit de la mettre sur le dessus de faceBook bouton. (Je sais que Apple ne veut pas des conseils pour mettre de la vue sur le bouton, Mais une itération sur les sous-vues ne sont pas très belles pour moi). Difficile de comprendre pourquoi une telle société que FB ne fournit pas de moyen simple de le faire.
Si vous vous référez à https://github.com/facebook/facebook-ios-sdk/blob/master/src/UI/FBLoginView.m, ligne 299, vous verrez que le texte est fourni par une méthode d'instance dans FBLoginView. Par conséquent, vous pouvez modifier ce texte en dérivant votre propre classe de FBLoginView et en fournissant votre propre mise en œuvre de logInText:
C'est un peu risquée, car elle dépend de la mise en œuvre interne de détails.
Depuis la dernière version 4.X Facebook SDK ,
La Connexion Personnalisée est rendu plus facile, Utiliser
FBSDKLoginManager
Selon les dernières Facebook Login Pour iOS Version 2.3.
Vous pouvez utiliser l'extrait de code suivant pour vous connecter par le biais de toute une Coutume UIButton.
Voici le lien: https://developers.facebook.com/docs/facebook-login/ios/v2.3#login-apicalls
Solution La Plus Simple