我有一个UITableView,它有一个我要显示单个图像的自定义单元格 . 我希望单元格根据图像的大小自动调整高度 . UIImageView填充在单元格中,在四条边上设置了自动布局约束 .

图像可以是不同的尺寸,一些比屏幕宽度宽 . 在这种情况下,由于我在UIImageView上设置的内容模式,图像将缩放到适合整个UIImageView的方面 .

当我设置好所有东西并运行时,我意识到UITableView没有正确设置单元格高度 . 似乎图像被缩放以适合UIImageView,但UITableView仍然将单元格高度设置为等于原始图像的高度 . 除了这个问题,我也不知道为什么图像被缩放,因为图像的宽度只有640像素,而iphone 6模拟器的宽度应该是750像素?

总结一下,我在这里有两个问题:

  • 如果我将640像素宽的图像提供给填满整个屏幕宽度的UIImageView,为什么图像会缩放?

  • 如果图像确实已缩放,如何让UITableView根据缩放的大小而不是原始大小自动计算单元格高度 .

如果可能,请使用Swift而不是Objective-C来显示代码 . 你也可以假设我使用的是iOS 8 . 谢谢 .