iOS - 界面响应式设计,未知的表格单元格高度

时间:2016-02-26 08:28:00

标签: ios objective-c

我一直在为我的应用程序设计自定义表格单元格布局(使用自动布局),我遇到的问题很少。

这是我的自定义表格单元格xib:

我的表格单元格XIB

enter image description here

我无法找到该怎么做:

  1. ImageView:这些单元格中的图片来自远程网址(带有JSON)。 他们的身高和宽度总是不同,我不知道。我的目标是使图像的宽度始终在整个屏幕宽度上,设备屏幕上的像素边距很小(类似于Instagram图像宽度),缩放图像的高度(与图像的宽度成比例)
  2. Instagram屏幕截图示例

    enter image description here

    1. 由于我不知道图像的高度是多少,我如何设计应用程序,以便标签总是在图像下面,间距不大?我的意思是 - 无论图像底部在哪里,标签下的标签总是10px。

    2. 我不知道标签长度 - 所以下一个单元格必须在标签文本结束后立即启动。我该如何做到这一点?

    3. 希望能得到一些帮助,我对此感到非常沮丧,因为我已经在Anroid版本的一行代码中完成了这一点(无论谁熟悉这个 - TopOf anotherid / BottomOf的 anotherid

2 个答案:

答案 0 :(得分:0)

AutoLayout可以为您完成此操作 - 只需控制 - 从图像拖动到标签,然后选择“垂直间距”即可。您还希望在其余视图上使用AutoLayout来布局它们。请参阅documentation

答案 1 :(得分:0)

1)您需要在xib中定义所有约束。

ImageView领先&落后于superview。顶一些其他东西。标签底部。 (我不会在这里讨论标签高度处理) 您还必须为ImageView高度设置约束,假设为(100),然后在视图控制器中将此约束定义为IBOutlet。

2)一旦你从互联网上获得你的图像,你就有了SIZE。然后,您必须计算比率(image.size.height / image.size.width)

3)获取ImageView的“宽度”并乘以比率,然后将此新值(高度)设置为您定义为IBOutlet的ImageView高度约束

4)重新加载你的索引路径