gpt4 book ai didi

ios - 使用 ScaleAspectFit 时,在自定义单元格中创建 UIImageView 会留下旧图像中的伪影

转载 作者:行者123 更新时间:2023-11-29 10:59:07 26 4
gpt4 key购买 nike

我有一个带有 CustomCell 的表格,在绘制单元格时,我创建了一个 UIImageView 并将其作为 subview 添加到 scrolView。该图像还将其 contentMode 设置为 UIViewContentModeScaleAspectFit。问题是当绘制下一个 Cell 时,如果图像小于前一个图像,则前一个图像的边框仍然存在。

代码是这样的;

  UIImageView *smallImgView = [[UIImageView alloc]initWithFrame:CGRectMake(picXCount,0, 216, 216)];
smallImgView.image = nil;
smallImgView.contentMode = UIViewContentModeScaleAspectFit;

我现在想我应该从图像中收集尺寸并将 CGRectMake 设置为该尺寸而不是使用 contentMode 但如果有一个简单的修复......

将图像设置为 nil 不起作用,另一个想法是先加载空白图像(这很讨厌)。任何想法将不胜感激。

编辑

这里是单元格方法

- (UITableViewCell *)tableView:(UITableView *)tableView cellForRowAtIndexPath:(NSIndexPath *)indexPath
{
cellID = @"Cell"
newsItemCell *cell = [tableView dequeueReusableCellWithIdentifier:cellID forIndexPath:indexPath];
if (cell == nil)
{
cell = [[newsItemCell alloc] initWithStyle:UITableViewCellStyleDefault reuseIdentifier:cellID];
}
for(int imgCount = 0; imgCount < [[newsExtraImages objectAtIndex:indexPath.row] count]; imgCount++)
{
UIImageView *smallImgView = [[UIImageView alloc]initWithFrame:CGRectMake(picXCount,0, 216, 216)];
smallImgView.image = nil;
smallImgView.contentMode = UIViewContentModeScaleAspectFit;
[smallImgView setImage:[allImages objectAtIndex:[[[newsExtraImages objectAtIndex:indexPath.row] objectAtIndex:imgCount] intValue]]];

picXCount = picXCount + 216 + 12;

[cell.newsItemImages addSubview:smallImgView];
}
[cell.newsItemImages setContentSize:CGSizeMake(picXCount, 216)];

return cell;
}

简而言之,它检查 3D 数组以查看此单元格中有多少图像,如果有 5 个,则每次将它们添加到 View 时都会创建 UIImageView 5 次。下一个单元格是下一个图像列表,可能只有 3 个等等。

picXCount 跟踪在 ScrollView (newsItemImages) 中水平绘制图像的位置。内容也设置为滚动。

最佳答案

您能否提供 cellForRowAtIndexPath 代码。我怀疑每次您必须为不同的项目提供一个单元格时,您会在现有的 UIImageView 之上一遍又一遍地添加一个新的。当事实证明您可以重用一些单元格时,您可以将 UIImageViews 堆叠在一起。

关于ios - 使用 ScaleAspectFit 时,在自定义单元格中创建 UIImageView 会留下旧图像中的伪影,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/16859686/

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