7
votes

Uibarbuttonitem personnalisé

J'essaie de créer un uibarbuttonitem personnalisé qui utilise juste un PNG avec transparence afin que je n'ai qu'une icône en tant que bouton. Lorsque j'essaie de régler l'image du bouton, réglez l'arrière-plan comme blanc et définissez le style sur plain, je reçois toujours une ombre intérieure et une bordure noire autour de elle.

Qu'est-ce qui donne?

Entrez la description de l'image ici

J'ai essayé le code ci-dessous et met toujours la frontière noire autour de lui. < / p> xxx

Ce que j'ai remarqué, c'est si je fais une SEGUE modale le bouton, le code ci-dessus a toujours une bordure noire qui l'entoure, mais si je fais une SEGUE poussée, il ne faut pas ? Wtf?


0 commentaires

6 Réponses :


3
votes

essayez d'utiliser [uibarbuttonitem initwithcustomview] xxx


0 commentaires

0
votes

Essayez ce code ..

UIButton *button = [UIButton buttonWithType:UIButtonTypeCustom];
UIImage *btnImage = [UIImage imageNamed:@"bg"];
[button setImage:btnImage forState:UIControlStateNormal];
button.frame = CGRectMake(0, 0, btnImage.size.width, btnImage.size.height);
[button addTarget:target action:action forControlEvents:UIControlEventTouchUpInside];
UIImage *icon = [UIImage imageNamed:@"icon"]
UIImageView *iconView = [[UIImageView alloc] initWithImage:icon];
iconView.frame = CGRectMake(0, 0, icon.size.width, icon.size.height);
[button addSubview:iconView];
iconView..userInteractionEnabled=NO;
[iconView centerBothDirections];
[iconView release];
UIBarButtonItem *barbtn = [[[UIBarButtonItem alloc] initWithCustomView:button] autorelease];
self.navigationItem.leftBarButtonItem =barbtn


0 commentaires

15
votes

Vous devez définir le bouton Type sur personnalisé et l'image d'icône sur le bouton fond . Exemple de code: xxx

puis réglez ce bouton sur votre barbouttonitem comme ceci: xxx


1 commentaires

Vous voulez vous assurer que l'utilisateur n'a aucun problème à toucher le bouton, vous devez affecter une nouvelle uIView avec les limites que vous souhaitez pouvoir toucher, puis ajouter le bouton à cette vue puis lancer la barboutton avec ce nouvellement attribué. voir à la place



1
votes

i personnellement comme approche de Flattikit en aplatit simplement toute l'interface utilisateur par l'interface uiapppearance

essentiellement, vous "D faire quelque chose comme: xxx


0 commentaires

4
votes

Ceci mettra à jour tous les boutons de retour et les barres de navigation dans l'application. strong>

J'ai utilisé le code suivant pour définir le bouton de navigation personnalisé P>

UIImage *navBackgroundImage = [UIImage imageNamed:@"nav_bar.png"];
[[UINavigationBar appearance] setBackgroundImage:navBackgroundImage forBarMetrics:UIBarMetricsDefault];


2 commentaires

Il vaut la peine d'expliquer que cela mettra à jour tous les boutons de retour et les barres de navigation tout au long de l'application - probablement la meilleure réponse.


Sub Classez l'UinavigationController et modifiez la barre de navigation et utilisez la sous-classe comme outil de navigation principal,



7
votes

J'ai compris votre problème.

Lorsque vous appuyez en réalité un uiviewcontroller , il fera partie de l'uoinavigationController existant . Donc, la barre d'Uinavigation conserve. Mais lorsque vous utilisez modalviewController c'est juste un autre uiviewcontroller type de "ajouté" à votre uiviewcontroller existant . Donc, le uinavigationbar ne sera pas là.

Mais vous pouvez ajouter un autre uinavigationbar à partir de xib et ajoutez un uibutton . Mais n'ajoutez pas directement le uibutton , si vous le faites, il sera automatiquement converti au UIBARBUTON le rendant bordé.

SO PREMIER SO PREMIER Faites glisser un uibutton normal à votre uiview (Barre de navigation non de navigation). Changez-le en personnalisé et ajoutez uiImage à l'aide de Inspecteur d'attributs . Faites glisser cette image sur votre uinavigationbar [code>. Cela fonctionnera comme je l'ai essayé juste maintenant. Vous pouvez voir le tir à l'écran ci-dessous.

Entrez la description de l'image ici


2 commentaires

En fait, vous ne pouvez même pas accéder à la barre de navigation du contrôleur d'affichage présenté avec Modal Way. Vous devez donc ajouter votre propre barre d'uavigation (personnalisé).


J'ai été suivi pour vos pas ... Ce type d'action de bouton ne fonctionne pas @Property (faible, nonatomique) iboutlet uibarbuttonitem * Sidebarbutton; Donner une action de sortie, mais l'action des boutons ne fonctionne pas