【问题标题】:Finding the center of UIImageView UIImageView.center unexpected results寻找 UIImageView UIImageView.center 的中心出乎意料的结果
【发布时间】:2016-01-19 02:42:36
【问题描述】:

我有一个具有以下约束的 UIImageView:

  • 身高等于 135
  • 尾随空格至:SuperView = 0
  • 领先空间:Superview = 0
  • 顶部空间至:顶部布局 = 0

Xcode 7.2 Size Inspector 中 UIImageView 的宽度 = 600。

在我的UIViewController 中有一个通往 UIImageView 的出口:

@IBOutlet weak var heroImageView: UIImageView!

viewDidLoadheroImagveView.center 的值 = (300.0, 67.5)

但这不是图像的实际中心,300 位于 iPhone 5 模拟器中 UIImageView 的右侧。更像(x: 160.0, y: 67.5) 的东西是中心,虽然 x 不准确。

在 Xcode 7.2 中,我所有 UIViewControllers 的默认宽度都是 600 像素,我知道这不会是跨不同 Apple 设备的运行时渲染宽度,但为什么 UIImageView.center 不理解这一点?

如何获得UIImageView 的实际运行时中心?

【问题讨论】:

  • 代替 viewDidLoad ,在 viewDidAppear / viewWillAppear 方法中计算中心
  • 自动布局将在 viewDidLayoutSubviews 中完成计算

标签: ios swift uiimageview


【解决方案1】:

在 viewDidLoad 处,你的 heroImageView 的宽度为 600。由于父视图的前导空间为 0,x 位置将为 0。因此,中心位于 300。

您需要删除尾随和前导约束并将它们替换为“水平中心”和宽度约束。

【讨论】:

    猜你喜欢
    • 2021-03-25
    • 1970-01-01
    • 2016-09-03
    • 1970-01-01
    • 2011-11-24
    • 1970-01-01
    • 1970-01-01
    • 2017-12-16
    • 1970-01-01
    相关资源
    最近更新 更多