UITableViewCellのImageViewサイズを固定する

色んな画像の一覧をUITableViewで表示する場合、
UITableViewCell.imageView.imageに画像を設定して表示すると思います。
その画像サイズがまちまちだった場合、レイアウトが汚くなってしまいます。


まぁ、拡大縮小するとその分だけ画像が歪んでしまったりするので
もう一工夫するといい感じになるんですが、
取りあえず画像サイズだけ調節したい場合は以下のような形で関数を追加すると良いです。


参考URL : http://stackoverflow.com/questions/1055495/uitableviewcells-imageview-fit-to-40x40


ソースファイルに全部書いてしまっても良いです。

@interface UIImage (CommonImplement)
- (UIImage *) makeThumbnailOfSize:(CGSize)size;
@end

@implementation UIImage (CommonImplement)
- (UIImage *) makeThumbnailOfSize:(CGSize)size;
{
    UIGraphicsBeginImageContext(size);  
    // draw scaled image into thumbnail context
    [self drawInRect:CGRectMake(0, 0, size.width, size.height)];
    UIImage *newThumbnail = UIGraphicsGetImageFromCurrentImageContext();        
    // pop the context
    UIGraphicsEndImageContext();
    if(newThumbnail == nil) 
        NSLog(@"could not scale image");
    return newThumbnail;
}

@end
使い方 :
UIImage *bigImage = [UIImage imageNamed:@"yourImage.png"];
UIImage *thumb = [bigImage makeThumbnailOfSize:CGSize(50,50)];


これでサムネイル画像に縮小されるため、これをcell.imageView.imageに設定してやればOK。
UITableViewCellのImageViewは設定されるUIImageの画像によって自動的に拡大縮小されます。
そのため、こうした形でUIImageを縮小してやれば比例して縮小してくれるわけです。