Я пытаюсь выполнить сценарий, в котором я могу увеличить масштаб изображения в UIScrollView. Я видел вокруг, что лучший способ добиться этого - иметь всеобъемлющий scrollView, который поддерживает прокрутку и иметь другой UIScrollViewView внутри (вместо обычного применения внутри UIImageView)Масштабирование в UIScrollView с другим UIScrollView в качестве содержимого
Вот что я есть:
class Editor: UIViewController, UIScrollViewDelegate {
let menuHeight = CGFloat(60)
var editor: LevelScrollView? = nil
var scrollProxy = UIScrollView()
override func viewDidLoad() {
let contentFrame = CGRectMake(0,menuHeight,self.view.frame.width,self.view.frame.height-menuHeight)
scrollProxy.delegate = self
scrollProxy.backgroundColor = UIColor.redColor()
scrollProxy.frame = contentFrame
scrollProxy.showsHorizontalScrollIndicator = false
scrollProxy.showsVerticalScrollIndicator = false
scrollProxy.bounces = false
let editor = LevelScrollView(reference: scrollProxy)
self.editor = editor
scrollProxy.addSubview(editor)
scrollProxy.contentSize = self.editor!.contentSize
scrollProxy.minimumZoomScale = 1.0
scrollProxy.zoomScale = scrollProxy.minimumZoomScale
scrollProxy.maximumZoomScale = 20.0
}
func scrollViewWillBeginZooming(scrollView: UIScrollView, withView view: UIView?) {
print("scrollViewWillBeginZooming")
}
func scrollViewDidEndZooming(scrollView: UIScrollView, withView view: UIView?, atScale scale: CGFloat) {
print("scrollViewDidEndZooming")
}
func scrollViewDidZoom(scrollView: UIScrollView) {
print("scrollViewDidZoom")
}
func viewForZoomingInScrollView(scrollView: UIScrollView) -> UIView? {
return editor
}
}
несколько замечаний:
- LevelScrollView является UIScrollView
- Я снял несколько вещей, не относящихся к этому вопросу, дайте мне знать, если это было бы полезно, чтобы увидеть все это.
- Вызывается функция делегата viewForZoomingIn с верным возвратом UIView (LevelScrollView), но остальные три никогда не вызываются независимо от того, что я делаю.
В связи с этим масштабирование не работает. Как бы я смог добиться этого?
Спасибо!
Все масштабирование - это масштабирование масштабированного представления (в вашем примере - 'редактор '). Это не волшебным образом говорит: «О, это прокрутка, он на самом деле хочет, чтобы я увеличил его _too_». – matt