【问题标题】:iOS Detail LayoutiOS 细节布局
【发布时间】:2013-08-08 15:02:03
【问题描述】:

我有以下详细信息屏幕:

滚动时:

我的问题是某些字段在末尾被截断,因为文本多于显示的内容。现在详细屏幕是用多个标签构建的,如下所示:

对于像描述这样的一些字段,我使用了文本视图。如果描述较长,我会移动下面的标签(这是在另一个视图中),以便完全显示描述字段。我必须在后面的代码中进行大量计算。由于设计者无法告诉控件训练类型标签应始终位于描述下方,即使描述字段增加了其高度也是如此。底部的蓝色区域是一个滚动视图,带有一个水平滚动的分段控件,这是静态的,它与来自数据库的数据无关。

这是设计器的另一个例子:

这可能不是最好的解决方案,但在当时它可以满足需要。

这个细节屏幕有更好的解决方案吗?分配数据时自动执行字段动态高度的东西?

此数据来自数据库,并非所有记录的数据量都相同。它们都包括此处显示的所有字段,但并不总是完整的。

【问题讨论】:

  • 您可以将UITableView 与自定义单元格一起使用,您可以在其中设置标题和值。您可以创建某种对象来保存这些值,并将它们传递给日期源并显示它们。
  • 您需要支持哪些版本的 iOS(自动布局)?
  • @Wain 我需要支持最新的 iOS 版本。
  • 我的意思是,什么旧版本。只能做 iOS 6 吗?
  • 是的,它将是 iOS 6 及更高版本。

标签: ios uilabel uitextview scrollview


【解决方案1】:

我认为使用 UIViewController 中的表格视图(而不是表格视图占据整个屏幕的 UITableViewController)会更容易执行。您可以使用 UILabel,将行数设置为 0,以便它们可以在需要时垂直扩展。如果您设置布局约束以使标签绑定到单元格的顶部和底部,则标签将在单元格时展开。使用 tableView:heightForRowAtIndexPath: 根据该行的数据调整单元格的高度。

【讨论】:

  • 单元格如何知道何时展开其标签?
  • @Angie,您根据该 indexPath 的字符串大小计算它(使用 sizeWithFont:constrainedToSize:lineBreakMode:)。
猜你喜欢
  • 2013-09-18
  • 2020-10-12
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2020-10-08
  • 2013-09-17
  • 2011-12-02
  • 1970-01-01
相关资源
最近更新 更多