我在Interface Builder中设置了一个视图控制器,其中包含以下视图结构:
- UIView
* UIScrollView
* UIImageView
我想将图片分配给UIImageView
,因此滚动视图(及其内容大小)将采用与图像相同的宽度并自动计算根据图像宽高比的内容大小的高度。 (这使得图像可以在UIScrollView
内垂直滚动。)
我正在使用Swift和Interface Builder + SnapKit来管理自动布局约束。
答案 0 :(得分:1)
我设法通过以下方式使用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)
}
}
}