ios - 使用 UITableViewAutomaticDimension 时 UIImageView 拉伸(stretch)不正确

标签 ios uitableview uiimageview

我有一个表格,它打开了 UITableViewAutomaticDimension 以自动计算每个单元格的高度。自动布局已打开。

表格有自定义单元格。这些单元格中的每一个都包含一个图像 (UIImageView)

第一次显示表格时,屏幕上可见的图像被垂直拉伸(stretch)。

其余图像都正常(未拉伸(stretch))。 如果我向下滚动(因此第一张图片变得不可见)并向上滚动以再次看到它,那么图片将变为正常(未拉伸(stretch))

由于某些原因,iOS 似乎无法正确计算第一张图片的高度。

你见过这样的吗?你知道怎么解决吗?

我尝试对 UIImageView 使用不同的模式(Aspect Fit、Aspect Fill)。我可以让它看起来正确。然而,细胞本身仍然被拉伸(stretch)(比它应该的高得多)。

附言我试图创建一个单独的项目来在干净的环境中复制这个问题,但我找不到导致错误的东西。

最佳答案

这听起来可能是因为 UIImageView 中的原始图像开始时尺寸较大,然后 UITableViewAutomaticDimension 变得困惑。您是否尝试过对每一行使用相同的图像或使用适合 UIImageView 尺寸的较小图像?

你说

If I scroll down (so the first image become invisible) and scroll back up to see it again then the image will become normal (not stretched)

这很可能是因为 tableview 通过 UITableViewdequeueReusableCellWithIdentifier 重用了单元格,这意味着每次您想要显示单元格时都不需要重新创建一个新单元格从已创建的单元格堆栈中获取一个并使用该单元格(主要是为了节省内存)。此外,这可能是由自动布局问题引起的(可能未设置约束或存在约束重叠,XCode 试图通过打破一个或多个约束来解决问题)

此外,您从未说明问题是针对 Objective-C 还是 Swift

关于ios - 使用 UITableViewAutomaticDimension 时 UIImageView 拉伸(stretch)不正确,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/33768430/

相关文章:

iOS UITableView 自动调整单元格大小并带有部分索引

ios - UITableview覆盖按钮

ios - 自定义单元格中的按钮操作

ios - 在不支持旋转的iOS应用程序中旋转UIImageView

iphone - 在 UIScrollView 中添加 10 个不同的 UIImage

iphone - 使用 dequeueReusableCellWithIdentifier 会导致用作重复背景的图像泄漏出单元格

javascript - ios - 如何从 objective-c 更改 .html 文件中的字符串并更新 webview?

ios - 这个 iOS 应用程序最有效的工作流程是什么?

ios - 将数据从详细 View 传递到主视图? (UITableView) swift

ios - 如何在质量损失最小的情况下通过网络传输小型 UIImages?