我需要在scrollview中显示一些信息,它应该如下所示:
第一个视图定义了高度,但第二个视图具有动态高度。我知道如何让它变得动态,但我不知道如何在滚动视图中制作它。它试图这样做,但它不起作用。知道如何在scrollview中制作这个场景吗?
没有滚动视图:
内部。滚动视图:
答案 0 :(得分:2)
如果您的视图仅垂直滚动,则应使用UITableView
而不是UIScollView
表格中的每个不同视图都是UITableViewCell
。对于内容的每个单元格集自动布局约束,确保您的约束附加到单元格内容视图的顶部和底部。为了使其更容易,请考虑在单元格内使用UIStackView
。
然后在你的表视图控制器......
tableView.rowHeight = UITableViewAutomaticDimension
tableView.estimatedRowHeight = <estimate of height>
......你的细胞将自己调整大小。
有很多资源用于自动调整表格视图单元格...
答案 1 :(得分:0)
如果没有更多详细信息,很难给出确定的答案......根据您提供的信息,我提供以下通用解决方案:
假设您使用StroyBoard / Xib设计视图 - 然后您可以按如下方式设置视图:
-View (root view)
-ScrollView
-UIStackView (vertical stackview)
-UIView (set static height and add all other components)
-UILabel (dynamic label ie with No. of lines set to 0)
-UIView (another view with static height set)
...后 - 使用autlayout将UIScrollView的top,leading,trailing,bottom约束设置为根视图... - 使用autolayout将UIStackView的顶部,前导,尾部,底部约束设置为滚动视图的顶部,前导,尾部和底部约束... - 使用autolayout设置UIStackView的宽度 - 你可以使它等于根视图的宽度,但你也可以给它任何你想要的宽度 - 使用autolayout EITHER将UIStackView置于Y轴(垂直)中心,或将其顶部约束设置为根UIView的顶部约束,因为它需要知道其Y位置...
有了这个,当你的内容大小大于屏幕大小时,你应该让你的滚动视图开始
如果这不是您想要的,那么您必须提供更多信息或澄清。
答案 2 :(得分:0)
该视图中的第二个视图或标签不应具有高度约束。
对于该标签,set number of lines to '0'
并且不要给它一个高度。但如果它发出第二个视图需要高度约束的警告,则给它一个低优先级的高度约束。