【发布时间】:2014-11-20 10:01:30
【问题描述】:
到目前为止,我只是在应该自动调整大小的单元格中使用文本标签。我通常对所有边缘(内容视图或邻居)设置约束,并将以下几行添加到我的viewDidLoad():
// 190.0 is the actual height of my custom cell (see next image) in the storyboard containing a label and a randomly sized UIImageView
tableView.estimatedRowHeight = 190.0
tableView.rowHeight = UITableViewAutomaticDimension
现在,在尝试包含图像时,我遇到了几个问题。在一些研究中,我发现了几种用 Objective-C 编写的方法,但是我不确定哪些方法真正解决了我的核心问题,但我仍在为复杂的 Objective-C 代码而苦苦挣扎。所以继续:我的最终目标是获得一个包含正确大小(正确高度)单元格的表格,每个单元格都包含一个标题和一个适合屏幕宽度的图像。这些图像可以具有不同的纵横比和不同的大小。为了简化一些挑战,我准备了一个新的、更简单的项目:
- 首先,我创建了一个
UITableViewController和一个CustomCell类,其中包含两个IBOutletstitle: String和postedImage: UIImage(UIImage 在情节提要中随机调整大小)来配置单元格。我为边缘和彼此定义了约束。
- 构建时,两个单元格被配置为包含相同的图像,但它们是从具有不同大小和分辨率(900 x 171 与半大小 450 x 86)的两个单独文件中获取的。 UIImage 视图模式设置为“Aspect Fit”,但到目前为止我无法让它按照我想要的方式运行,我不确定这是正确的设置。虽然我曾期望根据重新调整的 UIImage 计算单元格高度,包括我设置的约束,但它似乎是基于图像文件的初始高度(所以 171 和 86)。它实际上并不能适应实际的 UIImage 视图高度(我猜大约是 70)。
在我的一个稍微复杂的项目中,我希望不同的图像自动适应屏幕的宽度,无论它们是纵向还是横向 - 如果它们的宽度小于屏幕的宽度,它们应该按比例放大。就像在上面的项目中一样,每个单元格的高度都应该适合故事板中约束所定义的各个内容。无论如何,它从上面讨论的问题开始:我怎样才能让这两个单元格具有相同、正确的高度,并像故事板中定义的那样拥抱它的内容?
感谢一百万的帮助!
【问题讨论】:
-
想在 github 或其他地方发布测试项目吗?
-
@MikePollard 抱歉,不太明白你的意思……顺便说一句,我编辑并指定了我的问题。
-
我只是建议上传您的代码,这样我们就可以玩一玩并帮助您...
-
@MikePollard 代码非常基础,但结合我放置约束/设置的情节提要可能会有所帮助,所以我还是上传了项目:wetransfer.com/downloads/…
-
谢谢,我玩了一场,找到了解决方法。希望我的回答有帮助...
标签: uitableview swift ios8 autolayout