Das macht mich verrückt!Swift 3 UIScrollview nicht fragen Zoomen
Ich basiere meine UIScrollView
auf http://koreyhinton.com/blog/uiscrollview-crud.html, um es programmatisch zu machen, also habe ich eine Containeransicht in meinem scrollview eingerichtet. Aber es schwenkt, aber wird nicht zoomen.
Klasse BinaryTreeViewController: UIViewController, UIScrollViewDelegate {
var scrollView: UIScrollView!
var containerView : UIView!
override func viewDidLoad() {
super.viewDidLoad()
let width:CGFloat = self.view.bounds.width
let height:CGFloat = self.view.bounds.height
scrollView = UIScrollView()
scrollView.delegate = self
scrollView.minimumZoomScale = 0.5
scrollView.maximumZoomScale = 2.0
scrollView.contentSize = CGSize(width: width*2, height: 2000)
scrollView.backgroundColor = .red
containerView = UIView()
scrollView.addSubview(containerView)
view.addSubview(scrollView)
containerView.isUserInteractionEnabled = true
scrollView.isUserInteractionEnabled = true
}
override func viewDidLayoutSubviews() {
super.viewDidLayoutSubviews()
scrollView.frame = view.bounds
containerView.frame = CGRect(x: 0, y: 0, width: scrollView.contentSize.width, height: scrollView.contentSize.height)
}
override func viewWillLayoutSubviews() {
//I create a view called "theView"
containerView.addSubview(theView)
}
Folgende Funktionen werden nicht ausgelöst an jedem Punkt
func update(zoomScale: CGFloat, offSet: CGPoint) {
scrollView.zoomScale = zoomScale
}
func viewForZoomingInScrollView(scrollView: UIScrollView) -> UIView? {
return containerView
}
func scrollViewDidZoom(_ scrollView: UIScrollView) {
NSLog("scroll")
}
Danke dafür. Für jeden, der in Zukunft die Lösung benötigt, hat folgendes funktioniert. Das Problem mit Tutorials ist, dass es Probleme gibt, sobald ich sie auf ein Projekt anwende - zum Beispiel, hier bin ich programmatisch Unterklasse einer UI-View, so dass es schwierig ist. Gerade jetzt finde ich die Dokumente außerhalb von Basic Swift herausfordernd. Wie auch immer, hier ist der Code: func viewForZooming (in scrollView: UIScrollView) -> UIView? { NSLog ("zum Zoomen scrollen") retain containerView } – stevenpcurtis