I need scrolling between two views ( HomeN2 and MessengerView ) with a button for showing MessengerView and back to HomeN2
in page home
...
Carousel(page: $page, showSearch: $showSearch, showSearchRef: $showSearchRef, showSetting: $showSetting, showNotification: $showNotification, statubar: $statubar, config: $config, scrollto: $scrollto, selectedItem2: $selectedItem2)
...
struct Carousel : UIViewRepresentable {
func makeCoordinator() -> Coordinator {
return Carousel.Coordinator(parent1: self)
}
@Binding var page : Int
@Binding var showSearch : Bool
@Binding var showSearchRef : Bool
@Binding var showSetting : Bool
@Binding var showNotification : Bool
@Binding var statubar : Bool
@Binding var config: HeroConfiguration
@Binding var scrollto : Bool
@Binding var selectedItem2: User?
func makeUIView(context: Context) -> UIScrollView{
let total = UIScreen.main.bounds.width * 2
let view = UIScrollView()
view.isPagingEnabled = true
view.contentSize = CGSize(width: total, height: 1.0)
view.bounces = true
view.showsVerticalScrollIndicator = false
view.showsHorizontalScrollIndicator = false
view.delegate = context.coordinator
let view1 = UIHostingController(rootView: List1(page: $page, showSearch: $showSearch, showSearchRef: $showSearchRef, showSetting: $showSetting, showNotification: $showNotification, config: $config, scrollto: $scrollto, selectedItem2: $selectedItem2, statubar: $statubar ))
view1.view.frame = CGRect(x: 0, y: 0, width: total, height: UIScreen.main.bounds.height)
view1.view.backgroundColor = .clear
view.addSubview(view1.view)
return view
}
func updateUIView(_ uiView: UIScrollView, context: Context) {
}
class Coordinator : NSObject,UIScrollViewDelegate{
var parent : Carousel
init(parent1: Carousel) {
parent = parent1
}
func scrollViewDidEndDecelerating(_ scrollView: UIScrollView) {
let page = Int(scrollView.contentOffset.x / UIScreen.main.bounds.width)
//scrollView.setContentOffset(CGPoint(x: self.parent.scrollto ? UIScreen.main.bounds.width : 0, y: 0), animated: true)
self.parent.page = page
print(page)
}
}
}
struct List1 : View {
@Binding var page : Int
@Binding var showSearch : Bool
@Binding var showSearchRef : Bool
@Binding var showSetting : Bool
@Binding var showNotification : Bool
@Binding var config: HeroConfiguration
@Binding var scrollto : Bool
@Binding var selectedItem2: User?
@Binding var statubar : Bool
var body: some View{
HStack(spacing: 0){
HomeN2(showSetting: $showSetting, showNotification: $showNotification, showSearch: $showSearch, showSearchRef: $showSearchRef, scrollto: $scrollto, statubar: $statubar, selectedItem2: $selectedItem2, config: $config)
MessageView()
}}}