ios动态单元格高度由照片和文字决定

时间:2015-11-30 22:08:43

标签: ios objective-c uitableview autolayout

我正在尝试将非常类似于Instagram ,但一切正常但是我遇到了一个问题,我无法弄清楚如何解决。 此Feed将包含不同尺寸的照片,例如正方形,人像照片和风景照片。

问题是,我想调整UIImageViewUITableViewCell的大小以匹配照片的大小,并根据文本的大小调整UILabelUIImageView的宽度总是等于屏幕的宽度,就像Instagram一样,只有它的高度才会改变,以确保照片的比例正确。

这是我当前单元格的照片:

enter image description here

我尝试过使用autolayout,但是我无法理解如何使用UIImageView来改变比例,从横向到纵向等。

我也尝试过这种方法:

- (UITableViewCell *)tableView:(UITableView *)tableView     cellForRowAtIndexPath:(NSIndexPath *)indexPath object:(PFObject *)object

手动尝试计算尺寸:

//An example of trying to calculate the size of a view in my cell
    cell.cellView.frame = CGRectMake(0, 0, self.view.frame.size.width,    400);

然而,它变得非常复杂,因为我不知道如何将实际的UITableViewCell高度调整为每个单元格的唯一值。

我还查看了以下资源:

Link 1

Link 2

Link 3

Link 4

Link 5

所有这些都是关于动态细胞高度的教程,但它们似乎无法解释如何处理我的情况。

如果有人能够建议我能做些什么来实现具有独特的单元格高度和单元格内独特内容大小的Instagram样式,那将是很棒的。

1 个答案:

答案 0 :(得分:1)

据我所知,通过查看应用程序,Feed中的每个项目实际上都是tableview中的整个部分。赠品是用户名/位置/时间标题'快照的方式。在顶部到位,其他一切都在它下面滚动。这是一个viewForHeaderInSection。然后每个部分有2行或更多行:照片,工具栏,心/喜欢信息,然后每个评论一行。

因此,不要制作一个巨大的细胞并试图将所有细胞都放在其中,而是使用多个细胞。您可以使用唯一的重用标识符对故事板中的每个单元格进行原型设计,然后只需确定您正在查看的单元格类型,并从故事板中将相应的单元格出列。