Skip to content

A comprehensive collection of essential components for building advanced list-based UIs in SwiftU

License

Notifications You must be signed in to change notification settings

FluidGroup/swiftui-list-support

Folders and files

NameName
Last commit message
Last commit date

Latest commit

 

History

43 Commits
 
 
 
 
 
 
 
 
 
 
 
 

Repository files navigation

swift-dynamic-list

Convenient component displaying elements in UICollectionView - Supports SwiftUI-based cell

Requirements

  • iOS 14 +
  • iPhone Platform

Instructions

Works in UIKit

let list = DynamicListView<Section, Element>.init(...)

Setting how displays cells

list.setUp(
  cellProvider: { context in
    let data = context.data
    // return cell
  }
)

the context in cellProvider closure supports making SwiftUI based cells.

let cell = context.cell { state in
  Text("Hello")
}
return cell

setting how handles the events of selected or deselected

list.setSelectionHandler { action in
  switch action {
  case .didSelect(let item):
    print("Selected \(String(describing: item))")
  case .didDeselect(let item):
    print("Deselected \(String(describing: item))")
  }
}

basic configuration is completed.
then set the content that displays.

list.setContents(contents, inSection: targetSection)

Additional functions

it supports a trigger event when the scrolling will be reaching the tail.
that will be good timing to trigger loading additional data.

list.setIncrementalContentLoader { 
  await loadMoreData()
}

About

A comprehensive collection of essential components for building advanced list-based UIs in SwiftU

Resources

License

Stars

Watchers

Forks

Contributors 5

Languages