我在UIScrollView中有一个图像。图像的长度比设备屏幕尺寸大得多,这就是我将它放在滚动视图中的原因。但是,为了避免图像的剪切和失真,我设置了约束,因此图像将始终具有正确的宽高比。在不同尺寸的屏幕上运行时,图像大小不同。现在我希望能够使scrollview与我的图像具有相同的大小,以便scrollview永远不会比图像本身大。是否有一些我可以编程的代码使我的scrollview始终与我的图像一样高?我需要根据图像的高度更改滚动视图,因为在不同的设备上我的图像高度会发生变化。
到目前为止,我有:class Second : UIViewController {
@IBOutlet weak var myScrollView: UIScrollView!
@IBOutlet weak var myImage: UIImageView!
override func viewDidLoad() {
ScrollView.contentSize.height = 1300
}
我在图像上使用的约束是:
谢谢。非常感谢任何帮助!
答案 0 :(得分:0)
您可以按照以下方式在UIScrollView
中设置viewDidLoad
contentSize
媒体资源:
override func viewDidLoad() {
myScrollView.contentSize = CGSize(width: widthYouWantToSet, height: heightYouWantToSet)
}
但是,请注意,您可以在应用中体验旋转,如果高度发生变化,则需要更新。 我希望这能帮到你。
答案 1 :(得分:0)
试试这个,覆盖你的' viewDidLayoutSubviews'方法,您应该能够在该方法中获取图像的框架(您不会在viewDidLoad方法中获取图像的框架,请参阅下面的参考链接)。从框架中,获取图像的高度,然后按上面Victor所指示的滚动视图设置内容大小。如果有效,请告诉我。
请参阅此问题以供参考:iOS AutoLayout - get frame size width
答案 2 :(得分:0)
应该是,
override func viewDidLoad() {
myScrollView.contentSize.height = 1300
}