我正在为iPhone和iPad创建一个应用程序。现在我想在不同的手机屏幕上检索UIImageView的大小。我尝试过以下代码:
print("width \(BubbleBackground.frame.size.width)")
print("height \(BubbleBackground.frame.size.height)")
print("width1 \(BubbleBackground.bounds.size.width)")
print("height1 \(BubbleBackground.bounds.size.height)")
print("width2\(BubbleBackground.image!.size.width)")
print("height2\(BubbleBackground.image!.size.height)")
我已尝试使用上面的代码,但无论它是在iPhone 5,iPhone 6,iPhone 6 plus还是iPad上运行,它们都会给我一个恒定的值。有没有人知道如何在不同设备上运行时获得图像大小?
答案 0 :(得分:1)
您的图像在所有设备上的大小都相同,除非您在图像上设置了约束,使其大小调整以适应当前的屏幕尺寸。
约束通常使用Xcode的Interface Builder添加,但也可以以编程方式添加。
使用Interface Builder添加约束 https://developer.apple.com/library/prerelease/content/documentation/UserExperience/Conceptual/AutolayoutPG/WorkingwithConstraintsinInterfaceBuidler.html#//apple_ref/doc/uid/TP40010853-CH10-SW1
答案 1 :(得分:1)
您必须有一些限制才能根据屏幕大小更改imageView框架。然后,您可以在.layoutIfNeeded()
(BubbleBackground.layoutIfNeeded())上使用UIImageView
来获取其运行时大小。
请确保您在viewWillAppear
或viewDidLayoutSubviews
或在这些事件发生后的任何时间执行此操作。