Skip to content

Latest commit

 

History

History
37 lines (31 loc) · 1.43 KB

README.md

File metadata and controls

37 lines (31 loc) · 1.43 KB

SwiftyUIScrollView

A custom ScrollView wrapper that comes with Pagination and Page Control.

Wrap HStack or VStack with the custom SwiftUIScrollView to get pagination and page control features. The initializer for the wrapper is:

init(axis: DirectionX, numberOfPages: Int,
         pagingEnabled: Bool,
         pageControlEnabled: Bool,
         hideScrollIndicators: Bool,
         currentPageIndicator: UIColor?,
         pageIndicatorTintColor: UIColor?,
         @ViewBuilder content: @escaping () -> Content)

This is how the above custom wrapper could be used:

SwiftyUIScrollView(axis: .horizontal, numberOfPages: self.contentArray.count, pagingEnabled: true, pageControlEnabled: true, hideScrollIndicators: true) {
                    HStack(spacing: 0) {
                        ForEach(self.contentArray, id: \.id) { item in
                            TestView(data: item)
                                    .frame(width: g.size.width, height: g.size.height)
                        }
                    }
            }.frame(width: g.size.width)

The DirectionX enum contains two directions:

enum DirectionX {
    case horizontal
    case vertical
}

If you are using HStack, make sure you set the axis in initializer to- .horizontal, if using VStack make sure you use .vertical. This is madatory in order to have pagination and page controls to work for both directions.