我在 Interface Builder 中设置了一个视图控制器,具有以下视图结构:
- UIView
* UIScrollView
* UIImageView
我想分配一个图像UIImageView
,滚动视图(及其内容大小)将采用与图像相同的宽度,并根据图像纵横比自动计算内容大小的高度。(这使得图像在 . 内垂直滚动UIScrollView
。)
我正在使用 Swift 和 Interface Builder + SnapKit 来管理自动布局约束。
我在 Interface Builder 中设置了一个视图控制器,具有以下视图结构:
- UIView
* UIScrollView
* UIImageView
我想分配一个图像UIImageView
,滚动视图(及其内容大小)将采用与图像相同的宽度,并根据图像纵横比自动计算内容大小的高度。(这使得图像在 . 内垂直滚动UIScrollView
。)
我正在使用 Swift 和 Interface Builder + SnapKit 来管理自动布局约束。
我设法通过以下方式使用 SnapKit 进行约束:
UIScrollView
和UIImageView
出口到视图控制器UIImageView
然后实现视图控制器如下:
import UIKit
import SnapKit
class ViewController: UIViewController {
@IBOutlet weak var scrollView: UIScrollView!
@IBOutlet weak var imageView: UIImageView!
override func viewDidLoad() {
super.viewDidLoad()
scrollView.snp.makeConstraints { (make) in
make.edges.equalTo(view)
}
let ratio = imageView.image!.size.height / imageView.image!.size.width
imageView.snp.makeConstraints { (make) in
make.top.equalTo(0.0)
make.bottom.equalTo(scrollView.snp.bottom)
make.width.equalTo(view.snp.width)
make.height.equalTo(scrollView.snp.width).multipliedBy(ratio)
}
}
}