Slide 25
Slide 25 text
Cluster, Inc. 25
private func adjustImageViewSize() {
guard let size = imageView.image?.size else { return }
let rate = min(scrollView.bounds.width / size.width, scrollView.bounds.height / size.height)
// scrollView.boundsをもとに拡大率を計算して、 imageViewのサイズを調整する
imageView.frame.size = CGSize(width: size.width * rate, height: size.height * rate)
}
private func updateContentSize() {
// scrollView.contentSizeをimageViewのサイズに合わせる
scrollView.contentSize = imageView.frame.size
}
private func updateContentInset() {
// imageViewをscrollViewの中心に表示させる
let edgeInsets = UIEdgeInsets(
top: max((self.frame.height - imageView.frame.height) / 2, 0),
left: max((self.frame.width - imageView.frame.width) / 2, 0),
bottom: 0,
right: 0)
scrollView.contentInset = edgeInsets
}
改善策:SwiftUI + UIScrollView