寻找 UIImageView UIImageView.center 的中心出乎意料的结果
Posted
技术标签:
【中文标题】寻找 UIImageView UIImageView.center 的中心出乎意料的结果【英文标题】:Finding the center of UIImageView UIImageView.center unexpected results 【发布时间】:2016-01-19 02:42:36 【问题描述】:我有一个具有以下约束的 UIImageView:
身高等于 135 尾随空格至:SuperView = 0 领先空间:Superview = 0 顶部空间至:顶部布局 = 0Xcode 7.2 Size Inspector 中 UIImageView 的宽度 = 600。
在我的UIViewController
中有一个通往 UIImageView 的出口:
@IBOutlet weak var heroImageView: UIImageView!
viewDidLoad
中 heroImagveView.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 中完成计算 【参考方案1】:在 viewDidLoad 处,你的 heroImageView 的宽度为 600。由于父视图的前导空间为 0,x 位置将为 0。因此,中心位于 300。
您需要删除尾随和前导约束并将它们替换为“水平中心”和宽度约束。
【讨论】:
以上是关于寻找 UIImageView UIImageView.center 的中心出乎意料的结果的主要内容,如果未能解决你的问题,请参考以下文章
在 tableView 单元格中显示和隐藏 UIImageView
Xcode 6.3.2 - iOS - 模棱两可的 UIImageView
如何在 Swift 中使用色调和一些文本向 UIImageView 添加叠加层?
在同一个 UIImageView 中加载多个图像会在显示新图像之前闪烁最后一个图像