そのために画像を切り抜く/サイズ変更する必要があります。次に、必要なフレームごとに画像をトリミングするコードを示します。
- (void)viewDidLoad
{
[super viewDidLoad];
// do something......
UIImage *img = [UIImage imageWithData:(nsdata)]; // nsdata will be your image data as you specified.
// To crop Image
UIImage *croppedImage = [self imageByCropping:img] toRect:CGRectMake(10, 10, 50, 80)];
// To resize image
UIImage *resizedImage = [self resizeImage:img width:50 height:80];
}
クロップ画像:
- (UIImage*)imageByCropping:(UIImage *)imageToCrop toRect:(CGRect)rect
{
CGImageRef imageRef = CGImageCreateWithImageInRect([imageToCrop CGImage], rect);
UIImage *cropped = [UIImage imageWithCGImage:imageRef];
return cropped;
}
画像のサイズ変更:
-(UIImage *)resizeImage:(UIImage *)image width:(int)width height:(int)height
{
CGImageRef imageRef = [image CGImage];
CGImageAlphaInfo alphaInfo = CGImageGetAlphaInfo(imageRef);
alphaInfo = kCGImageAlphaNoneSkipLast;
CGContextRef bitmap = CGBitmapContextCreate(NULL, width, height, CGImageGetBitsPerComponent(imageRef), 4 * width, CGImageGetColorSpace(imageRef), alphaInfo);
CGContextDrawImage(bitmap, CGRectMake(0, 0, width, height), imageRef);
CGImageRef ref = CGBitmapContextCreateImage(bitmap);
UIImage *result = [UIImage imageWithCGImage:ref];
return result;
}
あなたはのいずれかの方法で行くことができます。
私の問題は、サイズを変更する方法ではありませんが、スクロール中にサイズを変更する必要があります。 – choise
はい、そうすべきです。また、サイズ変更した画像をキャッシュに入れたら、毎回ではなくキャッシュから画像を参照して、サイズを変更することができます。 –
奇妙なことです。テレビをすばやくスクロールすると、この列に間違った画像が表示されます。時にはそれらが正しい(最初の負荷で)スクロールは通常正しく感じることがあり、スクロールするといくつかのセルに間違った画像が表示されます。なぜこのようなことが起こるのか? – choise