Personnalisé UIBarButtonItems de UIButtons avec des images personnalisées - est-il possible de faire le robinet des cibles plus grandes?
Je suis en train de faire UIBarButtons comme suit:
//Create "back" UIBarButtonItem
UIButton *backButton = [UIButton buttonWithType:UIButtonTypeCustom];
backButton.frame = CGRectMake(0, 0, 28, 17);
[backButton addTarget:self action:@selector(backButtonTapped) forControlEvents:UIControlEventTouchUpInside];
backButton.showsTouchWhenHighlighted = YES;
UIImage *backButtonImage = [UIImage imageNamed:@"back-button.png"];
[backButton setBackgroundImage:backButtonImage forState:UIControlStateNormal];
UIBarButtonItem *backBarButtonItem = [[UIBarButtonItem alloc] initWithCustomView:backButton];
[toolBarItems addObject:backBarButtonItem];
Cependant, le robinet objectifs sont de minuscules. Plus précisément, ils sont de la taille des images personnalisées. (Qui encore une fois, sont minuscules.) Est-il possible d'augmenter la taille de leur robinet cible?
(Remarque: la modification de la propriété cadre de la UIButtons juste étire l'image.)
pouvez-vous fournir les images de sorte que nous pouvons reproduire/voir la question précise?
OriginalL'auteur Doug Smith | 2013-05-08
Vous devez vous connecter pour publier un commentaire.
De petits changements à votre code va faire les choses
Changements nécessaires :
backButtonImage
est{28,17}
et réglage de l'image du bouton commeCGRectMake(0, 0, 48, 37)
`backGroundImage
et l'utilisationsetImage:
imageEdgeInsets
àUIEdgeInsetsMake(10, 10, 10, 10)
Votre code sera comme ceci:
Vous pouvez modifier la valeur de la
frame
et laimageEdgeInsets
selon vos exigences.Ce code a fonctionné pour moi.
OriginalL'auteur Prasad Devadiga
Vous pouvez modifier la
UIBarButtonItem
'la largeur de la propriétéMalheureusement, vous ne pouvez pas modifier la hauteur est moyen, car il n'y a pas de propriété height.
Ce que vous pouvez faire, cependant, est en passe
UIBarButtonItem
unUIButton
avec un cadre bien défini à l'aide deinitWithCustomView
par exemple:
Si votre image est étirée, assurez-vous de maintenir le même ratio d'aspect! Ou assurez-vous que l'image est exactement la même taille.
J'ai mis à jour ma réponse pour vous. J'espère que c'est plus utile maintenant.
OriginalL'auteur VGruenhagen
1) Ajouter une catégorie pour votre UIButton
2) Ajouter de nouvelles propriétés à la catégorie
3) Ajoutez votre méthode pour initialiser le bouton de retour
4) Remplacer
-(BOOL)pointInside:(CGPoint)point withEvent:(UIEvent *)event
5) la sous-classe toolBarItems
Permet de dire que l'événement tactile ne déclenche pas nous avons besoin de la vue de son pour appeler le bouton de manière à en toolBarItems nous faire quelque chose comme:
puis c'est tout. nous agrandir l'image sans l'élargissement de l'effectif bouton.
vous venez initiale de votre bouton:
UIButton *btn = [[UIButton alloc]initBackBtnAtPoint:CGPointMake(0,0)];
Espère que cela aide
OriginalL'auteur Joshua
mmm... pour ce que vous avez besoin pour atteindre - c'est pas une image stretch - il existe un moyen simple:
1) utiliser Gimp ou photoshop et créez un calque transparent en dessous de votre image, de sorte qu'elle corresponde à la taille que vous voulez.
2) fusionner vers le bas et créer de la rétine et de la non-images de la rétine.
3) mise à jour de votre code afin de refléter la nouvelle taille de l'image.
4) associer les images et puis exécutez votre code.
De cette façon, votre image d'origine ne sera pas tendu parce qu'il est des limites de tenir compte de la partie transparente de.
Autre que cela, vous pouvez probablement faire tout cela par programmation, mais je doute que cela soit une bonne idée, sauf si vous avez prévu de plonger dans UIGraphics pour d'autres raisons.
OriginalL'auteur Alex
Vous avez besoin de changer trois ligne de code et l'espoir de son travail.
1)Changement de la backButton largeur selon votre besoin.
2)Régler le bouton retour du
Image
au lieu de backButton deBackgroundImage
3)pose Aussi backButton de
contentHorizontalAlignment
OriginalL'auteur korat prashant
Lorsque vous appelez
initWithCustomView
, leUIBarButtonItem
délégués de la gestion des événements de la vue personnalisée, ce qui, dans votre cas, est leUIButton
. À son tour, leUIButton
est la limite de l'image, et une image d'arrière-plan, il est prévu de s'étirer pour remplir de nouvelles limites en tant que de besoin.Au lieu de cela, définir la
image
etimageInsets
propriétés directement sur la UIBarButtonItem. Ces propriétés sont déclarées sur la classe parent,UIBarItem
. Vous pouvez également définir leur paysage variantes.OriginalL'auteur Steven McGrath
Bouton de changement de cadre à de grandes et de changer votre ligne de
:
OriginalL'auteur Alexander Merchi
Suffit d'utiliser
au lieu de
et définir le cadre de ce que vous voulez. L'image sera centrée sur le bouton recevrez le toucher dans l'image donnée.
Quelque chose comme ceci:
parce que vous avez besoin pour corriger les
contentMode
pour le bouton de cours. La valeur par défaut est probablementUIViewContentModeScaleToFill
, ensemble à ce que vous avez besoin (peut-êtreUIViewContentModeCenter
)OriginalL'auteur Lukas Kukacka
vous devriez être en mesure de simplement régler le bord des encarts sur le bouton.
afin de définir le cadre de la touche pour être plus grand que l'image, puis définissez le bord des encarts sur le bouton.
d'étendre la largeur de votre par par 10 pixels de chaque côté de quelque chose comme cela devrait fonctionner
OriginalL'auteur andrew lattis
Augmentation de la UIButton images(jusqu'au robinet de la taille que vous voulez)
Si vous souhaitez voir l'image pour le bouton "terminé" s'il vous plaît écrire en suivant la méthode
Si vous voulez voir l'image en taille réelle (Ne vous inquiétez pas du robinet est la taille de votre bouton de la taille seulement)
Et enfin
Espère que cela vous aide!
Signifie que, si vous donnez la taille du bouton est plus grand que l'image taille réelle, l'image sera étirer et de le montrer pour le bouton terminer.
OriginalL'auteur Ganee....