2015-11-01 4 views
0

Я пытаюсь выполнить сценарий, в котором я могу увеличить масштаб изображения в 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), но остальные три никогда не вызываются независимо от того, что я делаю.

В связи с этим масштабирование не работает. Как бы я смог добиться этого?

Спасибо!

+1

Все масштабирование - это масштабирование масштабированного представления (в вашем примере - 'редактор '). Это не волшебным образом говорит: «О, это прокрутка, он на самом деле хочет, чтобы я увеличил его _too_». – matt

ответ

0

Единственным решением, которое я смог найти для этого, было включение всего прокрутки в отдельный UIView, а затем включение масштабирования для этого.

Смежные вопросы