/ / Empêcher par programme d'empêcher UIImageView d'autoresizing - iphone, objective-c, xcode, cocoa-touch, uiimageview

Empêcher par programmation UIImageView de procéder à une auto-numérisation - iphone, objective-c, xcode, cocoa-touch, uiimageview

Je voudrais tronquer une extrémité d'un UIImageViewen changeant la taille du cadre dynamiquement. Bien sûr, si elle l'autorise, il n'aura pas l'air "tronqué", mais aura l'air rétréci. Le premier est l'effet que je voudrais, le dernier non.

Jusqu'ici, j'ai configuré UIImageView dans IB, puis je l'ai connecté par programmation à l'aide d'IBOutlet. Je l'ai ensuite placé dans ViewDidLoad, mais j'obtiens toujours le redimensionnement automatique:

[self.stringImageView setAutoresizingMask:UIViewAutoresizingNone];
self.stringImageView.frame = CGRectMake(9.0f, 508.0f, 500.0f, 26.0f);

Des idées Comment puis-je couper mon UIImageView au lieu de le redimensionner?

EDIT 1

Il convient également de noter que dans IB j'ai désélectionné Clip Subviews et Autoresize Subviews.

Réponses:

1 pour la réponse № 1

Vous devez d'abord couper l'objet UIImage en fonction du cadre de imageview, puis le définir en tant qu'image pour la visualisation d'image. Voir aussi Recadrer un UIImage


11 pour la réponse № 2

Utilisation : stringImageView.contentMode = UIViewContentModeCenter; de sorte que l'image que vous ajoutez à UIImageView conserve toujours la même taille et la même position dans votre vue.


0 pour la réponse № 3
@implementation UIImage (Resize)

// Returns a copy of this image that is cropped to the given bounds.
// The bounds will be adjusted using CGRectIntegral.
// This method ignores the image"s imageOrientation setting.
- (UIImage *)croppedImage:(CGRect)bounds {
CGImageRef imageRef = CGImageCreateWithImageInRect([self CGImage], bounds);
UIImage *croppedImage = [UIImage imageWithCGImage:imageRef];
CGImageRelease(imageRef);
return croppedImage;
}

0 pour la réponse № 4

Dans Interface Builder, définissez Mode dans l'onglet View sur "Top" ou quoi que ce soit d'autre.


0 pour la réponse № 5

Un autre moyen plus efficace si vous souhaitez uniquement rendre une partie de l’image visible, ou par exemple animer son apparence,

est de définir le mode de contenu du UIImageView à UIViewContentModeCenter (ou tout autre alignement) et incluez-le dans un UIScrollView.

Il vous suffira de changer le cadre de lafaites défiler la vue et votre image sera recadrée visuellement sans que vous ayez à créer l’image recadrée (ce qui serait un prix très élevé si c’était à des fins d’animation).