ChatLayoutAttributes

@MainActor
public final class ChatLayoutAttributes : UICollectionViewLayoutAttributes

Custom implementation of UICollectionViewLayoutAttributes

  • Alignment of the current item. Can be changed within UICollectionViewCell.preferredLayoutAttributesFitting(...)

    Declaration

    Swift

    @MainActor
    public var alignment: ChatItemAlignment
  • Pinning behavour of the current item.

    Declaration

    Swift

    @MainActor
    public var pinningType: ChatItemPinningType?
  • Indicates whether the current item is actively pinned.

    Declaration

    Swift

    @MainActor
    public internal(set) var isPinned: Bool { get }
  • Pinning transition progress of the current item from 0 to 1. For the pinned item, it decreases from 1 as the next pinnable item pushes it away. For the next pinnable item, it increases toward 1 during that handoff.

    Declaration

    Swift

    @MainActor
    public internal(set) var pinningProgress: CGFloat { get }
  • Inter item spacing. Can be changed within UICollectionViewCell.preferredLayoutAttributesFitting(...)

    Declaration

    Swift

    @MainActor
    public var interItemSpacing: CGFloat
  • CollectionViewChatLayouts additional insets setup using ChatLayoutSettings. Added for convenience.

    Declaration

    Swift

    @MainActor
    public internal(set) var additionalInsets: UIEdgeInsets { get }
  • UICollectionViews frame size. Added for convenience.

    Declaration

    Swift

    @MainActor
    public internal(set) var viewSize: CGSize { get }
  • UICollectionViews adjusted content insets. Added for convenience.

    Declaration

    Swift

    @MainActor
    public internal(set) var adjustedContentInsets: UIEdgeInsets { get }
  • CollectionViewChatLayouts visible bounds size excluding adjustedContentInsets. Added for convenience.

    Declaration

    Swift

    @MainActor
    public internal(set) var visibleBoundsSize: CGSize { get }
  • CollectionViewChatLayouts visible bounds size excluding adjustedContentInsets and additionalInsets. Added for convenience.

    Declaration

    Swift

    @MainActor
    public internal(set) var layoutFrame: CGRect { get }
  • Returns an exact copy of ChatLayoutAttributes.

    Declaration

    Swift

    @MainActor
    public override func copy(with zone: NSZone? = nil) -> Any
  • Returns a Boolean value indicating whether two ChatLayoutAttributes are considered equal.

    Declaration

    Swift

    public override func isEqual(_ object: Any?) -> Bool