【发布时间】:2015-07-04 13:42:26
【问题描述】:
我想将 UIImageView 在 iOS 屏幕上的矩形区域内居中。矩形的位置和尺寸在运行时确定,并由CGRect 表示。图像已被绘制,但必须在运行时移动到矩形区域的中心。我怎样才能做到这一点?
【问题讨论】:
标签: ios layout uiimageview cgrect
我想将 UIImageView 在 iOS 屏幕上的矩形区域内居中。矩形的位置和尺寸在运行时确定,并由CGRect 表示。图像已被绘制,但必须在运行时移动到矩形区域的中心。我怎样才能做到这一点?
【问题讨论】:
标签: ios layout uiimageview cgrect
这取决于。如果您使用自动布局(默认),那么您将使用布局约束。您应该能够在 IB 中设置布局约束,即使图像视图改变大小,也可以保持图像视图居中,而无需任何自定义代码。
只需在 IB 中选择视图,选择右侧的按钮,弹出标题为“添加新的对齐约束”,然后单击复选框“容器中的水平中心”和“容器中的垂直中心”。然后点击弹出窗口底部的“添加约束”按钮。
【讨论】:
假设您希望更改立即发生,您应该能够将图像视图的框架更改为您想要的 CGRect:
imageView.frame = rect
这是假设您的 UIImageView 自动调整大小和/或具有正确的纵横比。如果没有,你应该相应地调整你的 CGRect。或者,您可以考虑为 frame 属性设置动画。
如果您只是在视图最初加载时执行此操作,则使用自动布局将图像居中会更容易,方法是在其容器中水平和垂直居中,正如 Duncan C 建议的那样。
【讨论】: