2
我有一個UIScrollView
,其中包含一個UIImageView
。我正在設置最小的卷軸工廠,以便在視圖完全縮小時,可以看到整個圖片並在整個屏幕上延伸。如何正確計算UIScrollView的最小縮放係數?
目前我的代碼似乎設置的最小值太低。可以看到整個圖片,但圖片右側有很多額外的空間。當視圖顯示圖像可以完全移出視野時,會有非常多的額外空間。一旦執行另一個縮放,很多額外的空間就會消失,但圖像仍然可以縮小得太小。
下面是代碼:
override func viewWillAppear(animated: Bool) {
super.viewWillAppear(animated)
imageView.image = image!
imageView.frame.size = image!.size
scrollView.contentSize = imageView.frame.size
let scrollViewFrame = scrollView.frame
let scaleWidth = scrollViewFrame.size.width/scrollView.contentSize.width
let scaleHeight = scrollViewFrame.size.height/scrollView.contentSize.height
let minScale = min(scaleWidth, scaleHeight)
scrollView.minimumZoomScale = minScale
scrollView.maximumZoomScale = 3.0
scrollView.zoomToRect(imageView.frame, animated: false)
}
編輯:尺寸似乎之前和縮放後的變化。
變焦之前:
Scroll view frame: (0.0, 0.0, 600.0, 600.0)
Scroll view content size: (1500.0, 1001.0)
Image view frame: (0.0, 0.0, 1500.0, 1001.0)
變焦後:
Scroll view frame: (0.0, 0.0, 600.0, 600.0)
Scroll view content size: (600.0, 400.4)
Image view frame: (0.0, 0.0, 600.0, 400.4)
你的代碼看起來很穩固。無論如何,scrollView.frame和scrollView.contentSize的值是什麼? –
'scrollView.frame =(0.0,0.0,600.0,600.0)'和'scrollView.contentSize =(600.0,400.4)' – Max
除了基於contentSize計算外,請嘗試使用imageView.frame.size。另外,如果你將變焦硬編碼爲.67,你還能看到白屏嗎? –