我想调整我拥有的所有TableView单元格的图像。 我尝试了这种方法并且它正在工作,但图像的质量却降低了。
-(UITableViewCell *)tableView:(UITableView *)tableView cellForRowAtIndexPath:(NSIndexPath *)indexPath
{
//...
CGSize size = {35,35};
cell.imageView.image = [self imageWithImage:[UIImage imageNamed:@"image.png"] scaledToSize:size];
//...
}
//Given a UIImage and a CGSize, this method will return a resized UIImage.
- (UIImage*)imageWithImage:(UIImage*)image
scaledToSize:(CGSize)newSize;
{
UIGraphicsBeginImageContext( newSize );
[image drawInRect:CGRectMake(0,0,35,35)];
UIImage* newImage = UIGraphicsGetImageFromCurrentImageContext();
UIGraphicsEndImageContext();
return newImage;
}
所以我继续搜索,我发现有人说要添加这种方法
- (void)layoutSubviews {
[super layoutSubviews];
self.imageView.frame = CGRectMake(0,0,35,35);
}
但Xcode给我一个错误,这个方法不再可用吗?
如何在不降低质量的情况下调整图像大小?
答案 0 :(得分:0)
我设法找到一个解决方案,在这里我将解释以防有人需要。
首先创建一个假图像,如白色图像或清晰
cell.imageView.image = [UIImage imageNamed:@"clear.png"];
这就是为什么你必须告诉那个单元格的图像。
现在添加ImageView
作为TableView
单元格
UIImageView *imgView=[[UIImageView alloc] initWithFrame:CGRectMake(20, 5, 35, 35)];
imgView.backgroundColor=[UIColor clearColor];
[imgView.layer setCornerRadius:8.0f];
[imgView.layer setMasksToBounds:YES];
[imgView setImage:[UIImage imageNamed:account.icon]];
[cell.contentView addSubview:imgView];
现在好了。如果您不创建虚假图片,则新创建的imgView
将与cell.textLabel.text