gpt4 book ai didi

ios - 停止 TableView 单元格 UIImage 在 iOS 中调整大小

转载 作者:行者123 更新时间:2023-11-29 03:39:01 24 4
gpt4 key购买 nike

我有一个带有文本和图像的标准(即不是自定义)TableView 单元格,问题是我的图像大小不同,我想将它们放入 UIViewContentModeScaleAspectFill 之类的内容中。我只是希望 UIImage 为 54x54 并且不会一直调整大小 - 我只是希望它们是方形的!

有很多想法,但没有一个可行,我最接近的想法可行,但图像位于文本之上(它添加了另一个图像作为 subview )。

我不热衷于使用自定义单元格,因为我使用编辑模式来拖动内容,而且我还没有通过自定义单元格弄清楚这一点。

编辑

我最近尝试过;

UIImage *tempImage = [UIImage imageWithData:data];
CGSize size = CGSizeMake(54, 54);
UIGraphicsBeginImageContext(size);
[tempImage drawInRect:CGRectMake(0, 0, size.width, size.height)];
UIImage *scaledImage = UIGraphicsGetImageFromCurrentImageContext();
UIGraphicsEndImageContext();
cell.imageView.image = scaledImage;

我在 cellForRow 中有这个,我希望它能做到这一点;

cell.imageView.contentMode = UIViewContentModeScaleAspectFill;

这只适用于自定义单元格;

- (void)layoutSubviews {
[super layoutSubviews];
self.imageView.frame = CGRectMake(0,0,54,54);
}

这效果很好,但它覆盖了文本;

UIImageView *imgView=[[UIImageView alloc] initWithFrame:CGRectMake(0, 0, 54, 54)];
imgView.backgroundColor=[UIColor clearColor];
[imgView.layer setCornerRadius:8.0f];
[imgView.layer setMasksToBounds:YES];
[imgView setImage:[UIImage imageWithData: imageData]];
[cell.contentView addSubview:imgView];

这显示了我遇到的确切问题;

Stackoverflow problem

另一次编辑

好的,这有效,谢谢;

[cell setIndentationWidth:54];
[cell setIndentationLevel:1];

UIImageView *imgView=[[UIImageView alloc] initWithFrame:CGRectMake(0, 0, 54, 54)];
imgView.backgroundColor=[UIColor clearColor];
[imgView.layer setMasksToBounds:YES];
[imgView setImage:myImages[indexPath.row]];
[cell.contentView addSubview:imgView];

最佳答案

我建议您继承 UITableViewCell 并创建您自己的自定义单元格:D

但是,无论如何......尝试添加这个

UITableViewCell *cell = [tableView dequeueReusableCellWithIdentifier:cellIdentifier];

UIImageView *imgView = nil;
if (cell == nil)
{
cell = [[UITableViewCell alloc] initWithStyle:UITableViewCellStyleSubtitle reuseIdentifier:cellIdentifier];

imgView=[[UIImageView alloc] initWithFrame:CGRectMake(0, 0, 54, 54)];
imgView.backgroundColor=[UIColor clearColor];
imgView.contentMode = UIViewContentModeScaleAspectFill;
imgView.tag = 123;

[cell.contentView insertSubview:imgView atIndex:0];
[cell setIndentationWidth:54];
[cell setIndentationLevel:1];
}
else
{
imgView = (UIImageView*)[cell.contentView viewWithTag:123];
}
imgView.image = [UIImage imageNamed:@"myImage"];

关于ios - 停止 TableView 单元格 UIImage 在 iOS 中调整大小,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/18728224/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com