IOS/Objective C:如何根据数据自定义屏幕

IOS/Objective C: How to customize screen based on data

来自网络背景的新人试图做一些在网络上很常见但在 iPhone 上可能无法实现的事情。

我正在尝试为看起来像名片的联系人创建一个屏幕:

John Doe
Vice President
Acme Insurance
222 Main Street
International Plaza
Anytown USA 22333
Tel: 555 555 5555
Fax: 555 555 5555
email: john.doe@acmeco.com

如果某些数据不可用,例如传真或标题,我宁愿不留空space,而是让下一行紧接在上一行的下方。

在情节提要中创建的标签似乎只留下一个空白 space 如果没有数据可以填充它们。

有什么方法可以让标签不占用 space 如果标签是空的,或者我是否卡在情节提要中的布局?

感谢您的任何建议。

没有像 HTML/CSS 那样基于 'flow' 的布局。有几种方法可以解决这个问题。例如:

  1. 使用 table 视图。
  2. 使用约束并手动将空标签的高度设置为 0。
  3. 手动布置标签。
  4. 使用换行符将所有内容放在一个标签中。

什么是最好的取决于您希望实际视图的外观。最简单的方法可能是#4。最灵活的方法可能是#1。但同样,这取决于您的其他要求。

隐藏的或空白的视图仍然占用 space(如您所见)。如果子视图将包含可见信息,您最好的选择可能是仅将子视图添加到主视图,然后在 运行 时间重新计算布局。

视图可以由视图控制器拥有,而不必是显示的一部分。