使用故事板中的AutoLayout在表格视图单元格中的图像

时间:2014-11-08 00:55:56

标签: ios uiimageview storyboard autolayout instagram

我有一个 Table View Cell ,其中所有内容都是 ImageView

如何使用我从Instagram的API 获得的图像(尺寸)动态更改表格视图单元格大小?

我很难解决,因为我正在解决两个变量:

  • 来自Instagram API的可变图像尺寸(标准资源似乎总是至少600+,因此无论手机大小如何,总是能够从左到右延伸)
  • 可变iPhone尺寸(iPhone 6,6 Plus等)

我已经尝试过固定所有方面,但是没有用。我已经尝试左右固定,并将限制底部空间添加到容器边距,将顶部空间添加到容器边距,这不起作用。

但我无法做对。我确定它有点小我不见了。任何帮助,将不胜感激。谢谢!

我正在使用Xcode 6和iOS 8.我正在使用Storyboard。仅限纵向。

1 个答案:

答案 0 :(得分:1)

我不知道这是否可以在故​​事板中完成。也许有一种方法可以在iOS 8中使用自行调整大小的单元格,但我没有找到方法,在任何情况下,这只适用于iOS 8,而不是7.无论如何,它很容易使用代码,并在故事板中设置简单的约束。只需将图像视图固定到单元格的所有四边(我在我的示例中使用8的所有边的标准边距),然后实现heightForRowAtIndexPath,

-(CGFloat)tableView:(UITableView *)tableView heightForRowAtIndexPath:(NSIndexPath *)indexPath {
    CGSize imageSize = [[UIImage imageNamed:self.theData[indexPath.row]] size];
    CGFloat height = imageSize.height/imageSize.width * (tableView.frame.size.width - 16);
    return height + 16;
}

代码中的16位代表图像视图所有边上的填充为8。如果你有你的图像视图一直到左边和右边,那么你可以消除它们。