Ios 以编程方式获取UIImageView的大小

Ios 以编程方式获取UIImageView的大小,ios,iphone,swift,ipad,uiimageview,Ios,Iphone,Swift,Ipad,Uiimageview,我正在为iPhone和iPad创建一个应用程序。现在我想在不同的手机屏幕上检索UIImageView的大小。我已尝试使用以下代码: print("width \(BubbleBackground.frame.size.width)") print("height \(BubbleBackground.frame.size.height)") print("width1 \(BubbleBackground.bounds.size.width)") print("height1 \(BubbleB

我正在为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)")

我尝试过上面的代码,但不管它是在iphone5、iphone6、iphone6plus还是iPad上运行,它们都会返回一个常量值。有人知道当图像在不同的设备上运行时如何获得图像大小吗?

您的图像在所有设备上的大小都相同,除非您对图像设置了限制,使其调整大小以适应当前屏幕大小

约束通常使用Xcode的接口生成器添加,但也可以通过编程方式添加

使用界面生成器添加约束


以编程方式添加约束

您的图像在所有设备上的大小都相同,除非您对图像设置了约束,使其调整大小以适应当前屏幕大小

约束通常使用Xcode的接口生成器添加,但也可以通过编程方式添加

使用界面生成器添加约束


以编程方式添加约束

您必须有一些约束才能根据屏幕大小更改imageView帧。然后,您可以在
UIImageView
(BubbleBackground.LayoutifNeed())上使用
.LayoutifNeed()
,以获取其运行时大小


确保在
视图中将出现
viewDidLayoutSubviews
或在这些事件发生后的任何时间执行此操作。

必须有一些约束才能根据屏幕大小更改图像视图框。然后,您可以在
UIImageView
(BubbleBackground.LayoutifNeed())上使用
.LayoutifNeed()
,以获取其运行时大小


请确保在
视图中将出现
viewDidLayoutSubviews
或这些事件之后的任何时间执行此操作。

可能是您已在属性中设置了固定高度。您将此代码放在何处?如果在
viewdiload
中,它可能不正确,因为布局还没有开始yetNop,这是纵横比,图像在iPad上调整为更高分辨率,在iPhone上调整为小分辨率。检查您是否设置了大小限制,以及是否设置了适合大小内容的设置。@Tj3n是的,您太棒了!你说得对,我不应该把它们放在viewDidLoad里!!非常感谢你!可能是您在属性中设置了固定高度。您将此代码放在哪里?如果在
viewdiload
中,它可能不正确,因为布局还没有开始yetNop,这是纵横比,图像在iPad上调整为更高分辨率,在iPhone上调整为小分辨率。检查您是否设置了大小限制,以及是否设置了适合大小内容的设置。@Tj3n是的,您太棒了!你说得对,我不应该把它们放在viewDidLoad里!!非常感谢你!是的,我想我不应该把它们放在viewDidLoad()中是的,我想我不应该把它们放在viewDidLoad()中