我在 UIScrollView 中有一个图像。图像的长度比设备屏幕尺寸大得多,这就是我将其放置在 ScrollView 中的原因。但是,为了避免图像的剪切和失真,我设置了约束,以便图像始终具有正确的宽高比。当您在不同尺寸的屏幕上运行时,图像的尺寸不同。现在我希望能够使 ScrollView 与我的图像大小相同,以便 ScrollView 永远不会大于图像本身。我可以编写一些代码来使 ScrollView 始终与图像高度相同吗?我需要根据图像的高度改变 ScrollView ,因为在不同的设备上图像的高度会改变。
到目前为止我已经:
class Second : UIViewController {
@IBOutlet weak var myScrollView: UIScrollView!
@IBOutlet weak var myImage: UIImageView!
override func viewDidLoad() {
ScrollView.contentSize.height = 1300
}
我在图像上使用的约束是:
- 与 ScrollView 等宽
- 在 ScrollView 中水平输入
- 顶部空间到 ScrollView 的顶部
- 宽高比适合(因此图像不会扭曲)
谢谢。非常感谢任何帮助!
最佳答案
尝试一下,重写您的“viewDidLayoutSubviews”方法,您将能够在该方法中获取图像的框架(您将无法在 viewDidLoad 方法中获取图像的框架,请参阅下面的引用链接)。从框架中获取图像的高度,然后设置 ScrollView 的内容大小,如上面 Victor 所指出的。让我知道它是否有效。
请参阅此问题以供引用:iOS AutoLayout - get frame size width
关于ios - 允许 ScrollView 的高度根据图像大小而改变,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/31764813/