使用自动布局更改 uiview 的大小并使其始终居中
Change size of uiview with auto layout and make it always in centered
我的 uiview 具有在 superview 内垂直居中以及宽度和高度的约束。在设备旋转时,uiview 应始终位于中心,但我需要能够更改 uiview 的宽度,但不应更改其位置。我试过了:
- 添加前导和尾随约束,但在这种情况下 uiview 的宽度根本没有变化
- 为宽度添加限制,它应该更大和更小,但在这种情况下宽度不会改变,uiview 只是移动
如果我对问题的理解正确,您可能在视图上分配了太多约束,因此自动布局系统发生冲突并删除了一些约束,然后您想要的约束没有任何效果。我建议您查看调试输出 window 以查看有关约束冲突的警告以及正在删除的警告。
你想要的是:删除你在这个视图上添加的所有约束,然后将它的前导约束到父视图的左侧,将它约束到父视图内的水平中心。这样 uiview 将居中,并相应地调整大小。您还可以限制高度或限制宽度和高度之间的纵横比。你绝对不希望的是直接约束高度和宽度。
我的 uiview 具有在 superview 内垂直居中以及宽度和高度的约束。在设备旋转时,uiview 应始终位于中心,但我需要能够更改 uiview 的宽度,但不应更改其位置。我试过了: - 添加前导和尾随约束,但在这种情况下 uiview 的宽度根本没有变化 - 为宽度添加限制,它应该更大和更小,但在这种情况下宽度不会改变,uiview 只是移动
如果我对问题的理解正确,您可能在视图上分配了太多约束,因此自动布局系统发生冲突并删除了一些约束,然后您想要的约束没有任何效果。我建议您查看调试输出 window 以查看有关约束冲突的警告以及正在删除的警告。
你想要的是:删除你在这个视图上添加的所有约束,然后将它的前导约束到父视图的左侧,将它约束到父视图内的水平中心。这样 uiview 将居中,并相应地调整大小。您还可以限制高度或限制宽度和高度之间的纵横比。你绝对不希望的是直接约束高度和宽度。