ios - 允许 ScrollView 的高度根据图像大小而改变

标签 ios swift uiscrollview uiimageview

我在 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/

相关文章:

swift - 更改单条条项目的背景颜色 - swift?

ios - Alamofire 图像模糊 Swift

ios - 约束更改后 UITableView 水龙头第一次不工作

ios - 重新加载 View swift 3 后 ScrollView 不起作用

ios - Cocoapods 中的嵌入式二进制文件?

iOS完成按钮重定向到jsp

ios - UIAlertController 按钮位置不一致

如果应用程序重新启动,iOS 模拟器控制台将停止打印

IOS 媒体播放器 - 跳到特定时间

ios - 当用户更改 View 时 UIScrollView 卡住