允许滚动视图的高度根据图像大小而改变
Posted
tags:
篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了允许滚动视图的高度根据图像大小而改变相关的知识,希望对你有一定的参考价值。
我在UIScrollView中有一个图像。图像的长度比设备屏幕尺寸大得多,这就是我将它放在滚动视图中的原因。但是,为了避免图像的剪切和失真,我设置了约束,因此图像将始终具有正确的宽高比。在不同尺寸的屏幕上运行时,图像大小不同。现在我希望能够使scrollview与我的图像具有相同的大小,以便scrollview永远不会比图像本身大。是否有一些我可以编程的代码使我的scrollview始终与我的图像一样高?我需要我的滚动视图根据图像的高度进行更改,因为在不同的设备上我的图像高度会发生变化。
到目前为止我有:
class Second : UIViewController {
@IBOutlet weak var myScrollView: UIScrollView!
@IBOutlet weak var myImage: UIImageView!
override func viewDidLoad() {
ScrollView.contentSize.height = 1300
}
我在图像上使用的约束是:
- 滚动视图的宽度相等
- 在滚动视图中水平输入
- 顶部空间到scrollview的顶部
- 宽松适合(因此图像不会扭曲)
谢谢。任何帮助非常感谢!
答案
试试这个,覆盖你的'viewDidLayoutSubviews'方法,你就可以在该方法中获得图像的帧(你不会在viewDidLoad方法中得到图像的帧,参见下面的参考链接)。从框架中,获取图像的高度,然后按上面Victor所指示的滚动视图设置内容大小。如果有效,请告诉我。
请参阅此问题以供参考:iOS AutoLayout - get frame size width
另一答案
您可以在UIScrollView
中设置contentSize
viewDidLoad
属性,如下所示:
override func viewDidLoad() {
myScrollView.contentSize = CGSize(width: widthYouWantToSet, height: heightYouWantToSet)
}
但是,请注意,您可以在应用中体验旋转,如果高度发生变化,则需要更新。我希望这对你有帮助。
另一答案
应该,
override func viewDidLoad() {
myScrollView.contentSize.height = 1300
}
以上是关于允许滚动视图的高度根据图像大小而改变的主要内容,如果未能解决你的问题,请参考以下文章
PHP imagecopy 函数根据主图像的高度和宽度改变图章大小