更新ImageView框架大小以适应更大的屏幕

时间:2018-05-29 12:18:25

标签: ios objective-c

我想更新我的ImageView的帧宽和高度,如果它是iPad。我已经尝试过这样的事情,它正在工作,但只有在执行任何UI交互时才会更新视图。

[self.view LayoutIfNeeded]

我也试过了diskName,但没有相同的结果。有更好的方法可以做到这一点。请帮我解决这个问题。

2 个答案:

答案 0 :(得分:1)

使用宽度和高度约束的出口,更新它们并调用layoutIfNeeded()。

@IBOutlet weak var imageViewWidthConstraint: NSLayoutConstraint!
@IBOutlet weak var imageViewHeightConstraint: NSLayoutConstraint!

imageViewWidthConstraint.constant = 140*VAL
imageViewHeightConstraint.constant = 290*VAL

view.layoutIfNeeded()

答案 1 :(得分:1)

正如评论中所提到的,您不应该直接设置使用自动布局的视图的框架。

您确定图像视图大小的方法存在潜在问题 - 您在SE和Plus尺寸设备上使用相同尺寸,在9.7英寸iPad上使用12.9英寸iPad专业版。您应该考虑设置约束以使用比例大小调整...

enter image description here

在上面的示例中,图像视图在iPhone 8 / X上的宽度为140pt,在SE上为124pt,在Plus尺寸的设备上为155。

或者,如果您想使用故事板实现1.5 iPad倍增器,您可以为宽度和宽度的变化添加不同的常量。高度...

enter image description here

这将使所有iPhone的纵向宽度(紧凑宽度,常规高度)为140,在iPad上为所有方向(常规宽度和高度)的宽度为210