2022-04-23 05:28:29 +04:00

40 lines
927 B
Swift

import Foundation
import UIKit
import AsyncDisplayKit
public protocol GridSection {
var height: CGFloat { get }
var hashValue: Int { get }
func isEqual(to: GridSection) -> Bool
func node() -> ASDisplayNode
}
public protocol GridItem {
var section: GridSection? { get }
func node(layout: GridNodeLayout, synchronousLoad: Bool) -> GridItemNode
func update(node: GridItemNode)
var aspectRatio: CGFloat { get }
var fillsRowWithHeight: (CGFloat, Bool)? { get }
var fillsRowWithDynamicHeight: ((CGFloat) -> CGFloat)? { get }
var customItemSize: CGSize? { get }
}
public extension GridItem {
var aspectRatio: CGFloat {
return 1.0
}
var fillsRowWithHeight: (CGFloat, Bool)? {
return nil
}
var fillsRowWithDynamicHeight: ((CGFloat) -> CGFloat)? {
return nil
}
var customItemSize: CGSize? {
return nil
}
}