iOS UIView 大小
Posted
技术标签:
【中文标题】iOS UIView 大小【英文标题】:iOS UIView size 【发布时间】:2015-06-03 12:36:01 【问题描述】:我有一个控制器,其 4UILabels
在所有 iPhone 中的高度都是恒定的,在最后一个UILabel
下方有一个带有页面控制器的UIView
(在该页面控制器内有一个TableView
)。
我想要的是UIView
占据他无法达到的所有高度:
例子:600高的屏幕
4UILABELS
= 200 高度
TableView = 它应该得到 400 高度
800高度的屏幕
4UILABELS
= 200 高度
TableView = 它应该有 600 的高度
我还需要 1 个约束来设置视图的高度,我定义的是:
-
superView 的 EqualWidth 约束
LeadingSpace 到 SuperView
超级视图的顶部空间
【问题讨论】:
到底是什么问题? 你只需要Y位置,所以你可以把你的tableview固定到底部,应该没问题。 问题是我不知道是什么约束得到了高度 【参考方案1】:以下约束应该为您对齐所有内容,以便 UILabel 垂直堆叠,每个高度为 50,并延伸到边缘。无论屏幕大小如何,UIView 都会占用剩余空间。
所有 UILabel
将前沿固定到超级视图
将后沿固定到超级视图
添加高度约束设置为 50.0
UILabel 1:
将顶部边缘固定到超级视图顶部
UILabel 2:
将顶部边缘固定到 UILabel 1 底部
UILabel 3:
将顶部边缘固定到 UILabel 2 底部
UILabel 4:
将顶部边缘固定到 UILabel 3 底部
UIView
将前沿固定到超级视图
将后沿固定到超级视图
将顶部边缘固定到 UILabel 4 底部
将底部边缘固定到超级视图
UITableView
将前导、尾随、顶部和底部固定到其容器视图,使其填充该区域。
【讨论】:
问题是当 tableView 获取数据时它会自动调整大小,调整我的视图大小(即使 tableview 没有自动布局 持有页面视图控制器的视图是否在 UILabel 上方移动?你到底看到了什么?您需要确保表格视图设置为滚动。还要确保页面视图固定在边缘。 在一个新问题上进行了解释,因为那里的问题不同 -> ***.com/questions/30641565/…【参考方案2】:我假设您是在 Storyboard 中创建这个 UIViewController。
您应该能够将所有标签放在一个容器视图中,按照您的指定,该容器视图具有 200 磅的恒定高度。从“顶部布局指南”到所述容器视图进行垂直约束,可能值为 0。拖动 UITableView 并将其放在容器视图下方。不要给它任何关于高度的限制。在容器视图(底部)和 UITableView(顶部)之间设置垂直间距,值为 0,在 UITableView(底部)和底部布局指南之间设置垂直间距,值为 0。
原来如此(V:0表示垂直间距,常数0):
顶部布局指南 V:0容器视图 - 高度:200 V:0TableView(动态高度) V:0底部布局指南
这应该可行。
(当然,您需要为容器视图中的每个 UILabel 创建关于宽度的约束以及内部约束。如果您需要帮助,请告诉我。)
【讨论】:
以上是关于iOS UIView 大小的主要内容,如果未能解决你的问题,请参考以下文章