Figure out a way to attach to scrolling in pages (#690)
This commit is contained in:
parent
c925e48385
commit
fa696a6f36
|
@ -205,32 +205,10 @@ extension WelcomeIllustrationView {
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
|
func update(currentPage: WelcomeContentPage, contentOffset: CGFloat) {
|
||||||
|
// why does it jump back???
|
||||||
|
print("\(contentOffset) — \(currentPage)")
|
||||||
|
//TODO: @zeitschlag update frames
|
||||||
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
#if canImport(SwiftUI) && DEBUG
|
|
||||||
import SwiftUI
|
|
||||||
|
|
||||||
struct WelcomeIllustrationView_Previews: PreviewProvider {
|
|
||||||
|
|
||||||
static var previews: some View {
|
|
||||||
Group {
|
|
||||||
UIViewPreview(width: 375) {
|
|
||||||
let view = WelcomeIllustrationView()
|
|
||||||
view.layout = .compact
|
|
||||||
return view
|
|
||||||
}
|
|
||||||
.previewLayout(.fixed(width: 375, height: 1500))
|
|
||||||
UIViewPreview(width: 547) {
|
|
||||||
let view = WelcomeIllustrationView()
|
|
||||||
view.layout = .regular
|
|
||||||
return view
|
|
||||||
}
|
|
||||||
.previewLayout(.fixed(width: 547, height: 1500))
|
|
||||||
}
|
|
||||||
}
|
|
||||||
|
|
||||||
}
|
|
||||||
|
|
||||||
#endif
|
|
||||||
|
|
||||||
|
|
|
@ -145,6 +145,13 @@ extension WelcomeViewController {
|
||||||
view.addSubview(pageViewController.view)
|
view.addSubview(pageViewController.view)
|
||||||
pageViewController.didMove(toParent: self)
|
pageViewController.didMove(toParent: self)
|
||||||
|
|
||||||
|
|
||||||
|
let scrollviews = pageViewController.view.subviews.filter { type(of: $0).isSubclass(of: UIScrollView.self) }.compactMap { $0 as? UIScrollView }
|
||||||
|
|
||||||
|
for scrollView in scrollviews {
|
||||||
|
scrollView.delegate = self
|
||||||
|
}
|
||||||
|
|
||||||
NSLayoutConstraint.activate([
|
NSLayoutConstraint.activate([
|
||||||
pageViewController.view.topAnchor.constraint(equalTo: view.safeAreaLayoutGuide.topAnchor),
|
pageViewController.view.topAnchor.constraint(equalTo: view.safeAreaLayoutGuide.topAnchor),
|
||||||
pageViewController.view.leadingAnchor.constraint(equalTo: view.leadingAnchor),
|
pageViewController.view.leadingAnchor.constraint(equalTo: view.leadingAnchor),
|
||||||
|
@ -398,6 +405,8 @@ extension WelcomeViewController: UIPageViewControllerDelegate {
|
||||||
guard let currentViewController = pageViewController.viewControllers?.first as? WelcomeContentViewController else { return }
|
guard let currentViewController = pageViewController.viewControllers?.first as? WelcomeContentViewController else { return }
|
||||||
|
|
||||||
currentPage = currentViewController.page
|
currentPage = currentViewController.page
|
||||||
|
//FIXME: @zeitschlag fix
|
||||||
|
// welcomeIllustrationView.update(for: currentPage, contentOffset: 1000)
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
|
@ -443,3 +452,11 @@ extension WelcomeViewController: UIPageViewControllerDataSource {
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
|
extension WelcomeViewController: UIScrollViewDelegate {
|
||||||
|
func scrollViewDidScroll(_ scrollView: UIScrollView) {
|
||||||
|
print(scrollView.contentOffset.x)
|
||||||
|
//TODO: @zeitschlag sync view
|
||||||
|
welcomeIllustrationView.update(currentPage: currentPage, contentOffset: scrollView.contentOffset.x)
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
Loading…
Reference in New Issue