如何将 UIImageView 放置在情节提要中另一个视图的一半
How to place the UIImageView at the half of another view in Storyboard
我想将一个 UIImageView
放在另一个 UIView
的一半。我已经设置了这样的约束:
我需要正方形图像视图位于橙色的一半 UIView
。 UIImageView
的上述位置是正确的,但它在 6 和 SE 屏幕中略微向上移动。
请看截图:
为什么会这样,如何防止 UIImageView
向上移动?我们需要一些其他约束吗?
将绿色 UIButton
置于 UIImageView
右侧的约束条件是什么?
首先你需要删除你的 top space constraint
,然后你需要在你的 UIImageView
和你的 redView 之间添加一个约束,右键单击并拖动到你的红色视图并 select 对齐到到顶部,稍后您需要将第一项从 .top
更改为 .centerY
,并添加乘数值 1 以在您的红色底部边缘居中
一张图片价值超过1000字
第二个要求
在你的第二个要求中,你需要添加一个帮助视图,我将它命名为 guideView
这个视图背景将是 .clear
并且 userInteraction
将被禁用,然后 guideView 将具有 .top
和 .bottom
约束到你的 UIImageView
.top 和 .bottom 也将尾随 space 到 superView,常数为 0 并领先 space 到你的 UIImageView
常数为 0,如图所示,然后您想要的绿色视图进入 guideView
内部,并将在垂直和水平方向居中对齐到 superview 以及具有固定值的高度和宽度,这就是全部
希望这对您有所帮助
实际上可以通过单个约束来完成。只需像这样对齐两个视图的中心:
如果您还查看剩余的约束,原始视图必须已经被适当地约束,必须与原始视图对齐的第二个视图需要提供宽度和高度以及另一个轴的位置。在这种垂直中心对齐的情况下,您需要提供 X 位置。
因此,如果您希望视图上下对齐,请改为对齐水平中心并提供视图的 Y 位置。
您也可以通过编程方式进行。这将始终使图像视图居中于视图的顶部边缘,一半在上方,一半在下方。
首先,为 UIImageView 和 UIView 创建插座。
然后:
[imageViewOutlet setCenter:CGPointMake(viewOutlet.frame.size.width/2, viewOutlet.frame.origin.y)]
我想将一个 UIImageView
放在另一个 UIView
的一半。我已经设置了这样的约束:
我需要正方形图像视图位于橙色的一半 UIView
。 UIImageView
的上述位置是正确的,但它在 6 和 SE 屏幕中略微向上移动。
请看截图:
为什么会这样,如何防止 UIImageView
向上移动?我们需要一些其他约束吗?
将绿色 UIButton
置于 UIImageView
右侧的约束条件是什么?
首先你需要删除你的 top space constraint
,然后你需要在你的 UIImageView
和你的 redView 之间添加一个约束,右键单击并拖动到你的红色视图并 select 对齐到到顶部,稍后您需要将第一项从 .top
更改为 .centerY
,并添加乘数值 1 以在您的红色底部边缘居中
一张图片价值超过1000字
第二个要求
在你的第二个要求中,你需要添加一个帮助视图,我将它命名为 guideView
这个视图背景将是 .clear
并且 userInteraction
将被禁用,然后 guideView 将具有 .top
和 .bottom
约束到你的 UIImageView
.top 和 .bottom 也将尾随 space 到 superView,常数为 0 并领先 space 到你的 UIImageView
常数为 0,如图所示,然后您想要的绿色视图进入 guideView
内部,并将在垂直和水平方向居中对齐到 superview 以及具有固定值的高度和宽度,这就是全部
希望这对您有所帮助
实际上可以通过单个约束来完成。只需像这样对齐两个视图的中心:
如果您还查看剩余的约束,原始视图必须已经被适当地约束,必须与原始视图对齐的第二个视图需要提供宽度和高度以及另一个轴的位置。在这种垂直中心对齐的情况下,您需要提供 X 位置。
因此,如果您希望视图上下对齐,请改为对齐水平中心并提供视图的 Y 位置。
您也可以通过编程方式进行。这将始终使图像视图居中于视图的顶部边缘,一半在上方,一半在下方。
首先,为 UIImageView 和 UIView 创建插座。
然后:
[imageViewOutlet setCenter:CGPointMake(viewOutlet.frame.size.width/2, viewOutlet.frame.origin.y)]