[英]Allow height of scroll view to change depending on image size
我在UIScrollView中有一个图像。 图像的长度比设备的屏幕尺寸大得多,这就是为什么我将其放置在滚动视图中。 但是,为了避免图像的裁剪和变形,我设置了约束,因此图像始终具有正确的宽高比。 当您在不同尺寸的屏幕上运行此图像时,图像将具有不同的尺寸。 现在,我希望能够使scrollview与我的图像具有相同的大小,以使scrollview永远不会比图像本身大。 我可以编程编写一些代码来使我的滚动视图始终与图像高度相同吗? 我需要根据图像的高度更改滚动视图,因为在不同的设备上,图像的高度将会更改。
到目前为止,我有:
class Second : UIViewController {
@IBOutlet weak var myScrollView: UIScrollView!
@IBOutlet weak var myImage: UIImageView!
override func viewDidLoad() {
ScrollView.contentSize.height = 1300
}
我在图像上使用的约束是:
谢谢。 任何帮助都非常感谢!
您可以按照以下方式在viewDidLoad
设置UIScrollView
contentSize
属性:
override func viewDidLoad() {
myScrollView.contentSize = CGSize(width: widthYouWantToSet, height: heightYouWantToSet)
}
但是,请注意您的应用程序可能会旋转,如果高度发生变化,则需要更新此旋转。 希望对您有所帮助。
尝试此操作,重写您的“ viewDidLayoutSubviews”方法,您将能够在该方法中获取图像的框架(您不会在viewDidLoad方法中获取图像的框架,请参见下面的参考链接)。 从框架中,获取图像的高度,然后按照上面的Victor的指示设置滚动视图的内容大小。 让我知道它是否有效。
请参阅以下问题以供参考: iOS AutoLayout-获取框架大小宽度
应该,
override func viewDidLoad() {
myScrollView.contentSize.height = 1300
}
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.