展开 UITableViewCell 时如何使子视图保持相同大小

Posted

技术标签:

【中文标题】展开 UITableViewCell 时如何使子视图保持相同大小【英文标题】:How to make subviews stay the same size when expanding UITableVewCell 【发布时间】:2014-05-18 03:01:30 【问题描述】:

我有一个 UITableView,其中有 UITableViewCells,我使用 beginUpdates 和 endUpdates 进行扩展和收缩。这是我从 XIB 文件加载的 UITableViewCell 子类。这包含一个 UIImageView,其中包含我从 Internet 下载的图像。但是,当单元格扩展时,图像将不会保留其纵横比并扩展与单元格相同的量。我怎样才能使图像保持其纵横比并且不改变大小?另外,我没有在我的任何 XIB 文件中使用 AutoLayout。

【问题讨论】:

【参考方案1】:

发生这种情况是因为当您的视图更改边界大小时位图层会发生变化。

尝试将 UIImageView 的 contentMode 属性设置为 UIViewContentModeScaleAspectFitUIViewContentModeScaleAspectFill

参考:https://developer.apple.com/library/ios/documentation/uikit/reference/UIView_Class/UIView/UIView.html#//apple_ref/occ/instp/UIView/contentMode

【讨论】:

这修复了图像视图的大小调整,但现在图像视图被向下移动。有什么办法可以使图像视图的原点也固定吗? 没关系,我能够让它与 UIViewContentModeTop 一起工作。谢谢。

以上是关于展开 UITableViewCell 时如何使子视图保持相同大小的主要内容,如果未能解决你的问题,请参考以下文章

当 UITextView 大小发生变化时,如何调整 UITableViewCell 的大小?

UITableViewCell 折叠时展开和折叠动画不起作用

iOS 在点击时使用 AutoLayout 展开 UITableViewCell

如何禁用为 UITableViewCell 的某些部分调用 DidSelect?

UITableviewCell 高度未在滚动时重置

如何动态计算自定义展开/可折叠 UITableViewCell 的高度