2009-06-26 9 views
5

Je sous-classe UIImageView pour créer une application basée sur les vignettes. Essentiellement, je prends un seul fichier d'image et le divise en morceaux, puis j'assigne les morceaux à mes carreaux (UIImageViews), afin qu'ils puissent être manipulés indépendamment.créer UIImageView avec une partie du fichier image

Quelle est la meilleure façon de saisir une partie d'une image et de l'utiliser pour dessiner un UIImageView? J'ai pensé à surcharger drawRect et en utilisant CGAffineTransform, mais il semble qu'il devrait y avoir une façon plus simple de le faire, peut-être en spécifiant un CGRect au UIImage qui est passé au UIImageView, mais je ne vois pas d'API pour cela.

Répondre

11

Here we go:

UIImage* img = [UIImage imageNamed:@"myImage.jpg"]; 
CGRect imgFrame = CGRectMake(x, y, tileWidth, tileHeight); 
CGImageRef imageRef = CGImageCreateWithImageInRect([img CGImage], imgFrame); 
UIImage* subImage = [UIImage imageWithCGImage: imageRef]; 
CGImageRelease(imageRef); 
+0

Ne pas oublier de libérer le imageRef après la création du UIImage: CGImageRelease (imageRef) –

+0

fixe, grâce Nikolai –