AbstractCollectionDataSource
@available(*, deprecated, message: "Migrate to `CollectionDataSource` https://github.com/stanwood/SourceModel_iOS")
open class AbstractCollectionDataSource : NSObject, UICollectionViewDataSource, CollectionDataSource, DataSourceType
The AbstractCollectionDataSource
conforms to the CollectionDataSource
protocol and implements AbstractCollectionDataSource.numberOfSections(in:)
and AbstractCollectionDataSource.collectionView(_:numberOfItemsInSection:)
. It midiates the application data model DataType
and Type
for the UICollectionView
.
It is requried to subclass
AbstractCollectionDataSource
and overrideAbstractCollectionDataSource.collectionView(_:cellForItemAt:)
Example: DataSource and Delegate design
let items = [Element(id: "1"), Element(id: "2")]
self.objects = Stanwood.Elements<Element>(items: items)
self.dataSource = ElementDataSource(dataObject: objects)
self.delegate = ElementDelegate(dataObject: objects)
self.collectionView.dataSource = self.dataSource
self.collectionView.delegate = self.delegate
See also
Objects
-
dataObject, a collection of types
Declaration
Swift
public internal(set) var dataType: DataType? { get }
-
A single type object to present
Declaration
Swift
public internal(set) var type: Type? { get }
-
Initialise with a a single type object.
See also
Declaration
Swift
public init(type: Type, delegate: AnyObject? = nil)
Parameters
dataType
DataType
-
update current dataSource with type.
Note: If data type is a
class
, it is not reqruied to update the type.See also
Declaration
Swift
open func update(with type: Type?)
Parameters
type
Type