2014-03-25 48 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

相关问题