2014-03-25 70 views
0

我有一個圖像單元格。我想以編程方式更改圖像的尺寸在細胞是這樣的:如何在iOS中更改單元格圖像的大小

cell.myImage.image = [UIImage imageNamed:@"my_icon"]; 
CGSize size = CGSizeMake(10, 10); 
[self imageWithImage:cell.goalTypeImage.image scaledToSize:size]; 

圖像的大小看起來是這樣的:

- (UIImage*)imageWithImage:(UIImage*)image 
       scaledToSize:(CGSize)newSize 
{ 
    UIGraphicsBeginImageContext(newSize); 
    [image drawInRect:CGRectMake(0,0,newSize.width,newSize.height)]; 
    UIImage* newImage = UIGraphicsGetImageFromCurrentImageContext(); 
    UIGraphicsEndImageContext(); 

    return newImage; 
} 

我也試過這不工作:

cell.myImage.frame = CGRectMake(
cell.myImage.frame.origin.x, 
cell.myImage.frame.origin.y, 50, 50); 
cell.myImage.image = [UIImage imageNamed:@"icon"]; 

有誰知道爲什麼圖像不會改變大小?

+0

這是如何編譯的? imageWithImage方法定義的末尾有一個額外的分號錯別字。 – Aaron

+0

圖像大小已更改,但「UIImageView」的大小不變。 – rckoenes

+1

你不使用'imageWithImage:scaledToSize:'的返回值。 – rmaddy

回答

0

你沒有對返回的圖像做任何事情。這應該工作:

CGSize size = CGSizeMake(10, 10); 
cell.myImage.image = [self imageWithImage:cell.goalTypeImage.image scaledToSize:size]; 
+0

這不起作用 – Atma

+0

然後你的代碼中的其他地方出現問題,@Atma。 – Undo

+0

它的自定義單元格,這有什麼關係? – Atma

0

我認爲你應該使用的UITableViewCell像這樣的原生圖像:

cell.imageView.image = myImage; 

然後你就可以調整它的大小:

cell.imageView.transform = CGAffineTransformMakeScale(widthScale, heightScale); 

你有一些有趣UITableViewCell的屬性如textLabel,detailTextLabel和imageView。

+0

這不起作用 – Atma

+0

您是否創建了具有自定義視圖的自定義表格視圖單元格?或者它是tableView的默認UITableViewCell:cellForRowAtIndexPath? –

+0

它的自定義單元格 – Atma

相關問題