0

我在另外两个 UIView 中间有一个 UIView。假设它们被称为“顶部”、“中间”和“底部”。“Top”和“Bottom”分别是距离顶部和底部 20pt 的位置。如何在“Top”和“Bottom”之间垂直定位“Middle”,所以无论是 4" 还是 3.5" 设备,它都将始终位于其他两个 UIView 的中间?

4

2 回答 2

2

您需要创建一个隐藏的间隔视图。(隐藏视图仍然参与布局。)

将垫片的上边缘约束到 Top 的下边缘。将垫片的底部边缘约束到底部的顶部边缘。垫片的宽度和水平位置无关紧要,因此只需以您方便的方式进行设置即可。

然后将 Middle 的 Y 中心约束到垫片的 Y 中心。

请注意,您不需要将 Middle 设置为垫片的子视图,也不需要将任何插座连接到垫片。

于 2013-11-01T20:41:09.657 回答
1

这应该有效:

[viewMiddle setFrame:CGRectMake(x, y, width, height)];

在哪里

float y = viewTop.frame.origin.y + viewTop.frame.size.height + ((viewBottom.frame.origin.y - viewTop.frame.origin.y - viewTop.frame.size.height)/2) - (viewMiddle.frame.size.height/2);
于 2013-11-01T17:57:28.570 回答