Changer la taille d'un bouton image dynamiquement impossible ?
Bonjour à tous !
J'ai un petit problème, je voudrais modifier la taille et la position d'un bouton dynamiquement. Cela fonctionne sans problème lorsqu'un bouton n'a pas d'image background. Cependant lorsque que j'affecte une image en background seul la position change et pas la taille...
Comment faire pour changer la taille d'un bouton image ?
Ce code marche seulement que l'image demandée n'existe pas
J'ai un petit problème, je voudrais modifier la taille et la position d'un bouton dynamiquement. Cela fonctionne sans problème lorsqu'un bouton n'a pas d'image background. Cependant lorsque que j'affecte une image en background seul la position change et pas la taille...
Comment faire pour changer la taille d'un bouton image ?
[UIView beginAnimations:nil context:self];<br /> [UIView setAnimationDuration:0.5];<br /> <br /> if (cardTag > 2) detailedViewCard.frame = CGRectMake(4,7,207,290);<br /> else detailedViewCard.frame = CGRectMake(264,6,207,290);<br /> <br /> [UIView commitAnimations];<br /> <br /> UIImage * mImage = [[[UIImage alloc] initWithContentsOfFile: [mainBundle pathForResource:[rawSet_p1 objectAtIndex:cardTag] ofType:@"png"]] autorelease ];<br /> [detailedViewCard setBackgroundImage:mImage forState:0];<br />
Ce code marche seulement que l'image demandée n'existe pas
Connectez-vous ou Inscrivez-vous pour répondre.
Réponses
Le problème mon boutton ne grandit toujours pas mais en plus l'image ne s'adapte plus a la taille de mon bouton. Le bouton ne contient que le coin haut gauche de l'image (image plus grande que le bouton)
eftCapWidth
The horizontal end-cap size. (read-only)
@property(nonatomic, readonly) NSInteger leftCapWidth
Discussion
End caps specify the portion of an image that should not be resized when an image is stretched. This technique is used to implement buttons and other resizable image-based interface elements. When a button with end caps is resized, the resizing occurs only in the middle of the button, in the region between the end caps. The end caps themselves keep their original size and appearance.
Personnellement, je ferais le resize sur l'image pour gérer l'antialiazing. Tu trouveras un code tout fait sur ce site : recherche sur resizedImageToSize
Mon image s'adapte parfaitement a la taille du bouton si je fais setFrame.
Par contre si je met de l'animation les bouton adopte immédiatement la taille finale au lieu de grandir progressivement. Si en revanche je n'ai pas d'image le bouton grandit progressivement.
Je regarde ...
Tu as essayé une CABasicAnimation sur le layer du bouton ?
J'ai encore un peu de peine avec CAAnimation j'ai pas très bien compris l'animation sur un layer je n'arrive pas vraiment a voir comment m'y prendre.
Comment appliquer une animation sur un layer précis ?
J'essaie maintenant deux choses
• Voir ce qui bloque le bouton dans une telle animation
• Sinon, transformer cela en une CABasicAnimation sur la frame genre qui suit, mais cela ne marche pas ... pour l'instant
stretchableButton.autoresizingMask=UIViewAutoresizingFlexibleWidth | UIViewAutoresizingFlexibleHeight;
Il semblerait que mettre une image en background verrouille l'autoresizingMask.
• Avant de lancer l'animation, supprimer le bouton de sa superview, le remplacer par une UIImageView
• Lancer l'animation sur l'imageView, en déclarant un delegate à l'anim
• Dans la delegate méthod animationDidStop: finished: remplacer le bouton à la place de l'imageView