8
votes

Comment définissez-vous STRETTABLEIMAGEWITHEFTCAPPAIDTH dans l'interface Builder?

Comment définissez-vous STRETLABLEIMAGEWITHEFTCAPPAIDTH dans l'interface Builder?


0 commentaires

5 Réponses :


9
votes

Builder d'interface ne prend pas en charge les images extensibles.

-(void) viewDidLoad {
  [super viewDidLoad];
  [myImageView setImage:[[myImageView image] stretchableImageWithLeftCapWidth:5 topCapHeight:5 ]];
}


1 commentaires

Builder d'interface ne prend pas en charge les images extensibles. ==> Désolé, mais ça fait. Stretting La pièce prend ce rôle, mentionné dans ma réponse ci-dessous



2
votes

Ceci est actuellement (à partir de la version 4.5) une limitation de l'interfaceBuilder. Cependant, devoir créer un iboutlet pour chaque bouton et spécifier manuellement que l'image est extensible dans ViewDiDloadload n'est pas une excellente solution, si elles ne peuvent créer le UI plus encombrant et aussi plus fragile.

Au lieu de cela, créez une sous-classe uibutton qui rendra toujours une image de fond extensible par défaut. Dans cet exemple, je n'étiends que l'image de fond normale et surlignée. Pour une classe prête à la production, vous voudrez probablement vérifier tous les états d'images et d'images de premier plan et de les étirer. xxx


0 commentaires

0
votes

Semblable à @Asanswerbot, mais mis à jour pour iOS 5.0+ comme ExtentableImageWithLeftCapwidth: Topcapheight: code> est maintenant obsolète.

@implementation UIButtonStretchable

- (id) initWithCoder:(NSCoder *)aDecoder {
    self = [super initWithCoder:aDecoder];
    if (self) {
        [self setBackgroundImage: [[self backgroundImageForState:UIControlStateNormal] resizableImageWithCapInsets:UIEdgeInsetsMake(22,6,22,6)]forState:UIControlStateNormal];
        [self setBackgroundImage: [[self backgroundImageForState:backgroundImageForState:UIControlStateHighlighted] resizableImageWithCapInsets:UIEdgeInsetsMake(22,6,22,6)]forState:backgroundImageForState:UIControlStateHighlighted];
    }
    return self;
}
@end


0 commentaires

0
votes

iOS7 a également introduit des catalogues d'actifs dans lesquels vous pouvez spécifier la zone extensible de vos images, mais que cela ne fonctionne que si vous ne prenez en charge que IOS7 (c'est-à-dire que vous ne vous souciez pas des utilisateurs de l'iPad d'origine, iPod Touch ou 3GS; Ouais , il n'y a pas de fragmentation dans iOS).

voir https://developer.apple.com/library/ios/recipes/xcode_help-image_catalog-1.0/slicinganImage/slicingAnimage.htmlinganimage.htmlinganimage.htmlinganimage.htmlf//apple_ref/doc/uid/tp40013303-ch4-sw1


0 commentaires

0
votes

Utiliser étirement configs dans Voir la section .

  • Tout d'abord, changez le mode de la vue sur FILL FILL .

  • puis modifier x, y, largeur, champ de hauteur dans étirement pièce. Par exemple: Disons que vous avez une taille d'image 10x20 et que vous voulez l'adapter à la taille de la vue 5x10 ==> SET X = 5/10 = 0.5, Y = 10/20 = 0.5

    note : ib ne vous permet pas d'utiliser une image plus petite pour "étirer" dans un cadre plus grand, vous devez donc concevoir votre image aussi grande que possible


0 commentaires