Ich habe beim Start einen UIViewController, der zwei einzelne XIB-Ansichten lädt, durch die der Benutzer streichen kann. Ich möchte Code auslösen, sobald der Benutzer 2/3 über die gesamte Breite (Panning-Breite beider Ansichten) wischt, aber meine Erkennung ist nicht live.Live-Erkennung der scrollView-Position in der Panoramaansicht
Hier ist mein Code so weit ...
let vc0 = ViewController0(nibName: "ViewController0", bundle: nil)
let vc1 = ViewController1(nibName: "ViewController1", bundle: nil)
class ViewController: UIViewController {
@IBOutlet weak var scrollView: UIScrollView!
override func viewDidLoad() {
super.viewDidLoad()
self.addChildViewController(vc0)
self.scrollView.addSubview(vc0.view)
vc0.didMoveToParentViewController(self)
var frame1 = vc1.view.frame
frame1.origin.x = self.view.frame.size.width
vc1.view.frame = frame1
self.addChildViewController(vc1)
self.scrollView.addSubview(vc1.view)
vc1.didMoveToParentViewController(self)
self.scrollView.contentSize = CGSizeMake(self.view.frame.size.width * 2, self.view.frame.size.height - 66)
// This doesn't work
scrollView.delegate = self
// If the user user swipes 2/3 in (or it can be any other offset that's practical)
if (scrollView.contentOffset.x > (self.view.frame.size.width*2)*(2/3)) {
// Code I'd like to execute
// ...
}
}
Wie ist das möglich mit Swift?
Einstellen des Delegaten hat nicht funktioniert. Ich habe meinen Code aktualisiert, um einige Einblicke zu erhalten, wie mein Pan-Scrolling funktioniert. Vielleicht mache ich es auf eine andere Weise, die mit Ihrer Lösung kollidiert? – theflarenet
Ich habe meine Antwort aktualisiert, füge einfach 'UIScrollViewDelegate 'zu deiner Klassendeklaration hinzu – Jelly
Du bist großartig und hast mir heute Nacht viele Kopfschmerzen erspart. So funktioniert es !!! Vielen Dank für die Anleitung! :-) – theflarenet