diff --git a/ChatLayout.podspec b/ChatLayout.podspec index def03a69..428dd39e 100644 --- a/ChatLayout.podspec +++ b/ChatLayout.podspec @@ -1,6 +1,6 @@ Pod::Spec.new do |s| s.name = 'ChatLayout' - s.version = '1.1.13' + s.version = '1.1.14' s.summary = 'Chat UI Library. It uses custom UICollectionViewLayout to provide you full control over the presentation.' s.swift_version = '5.2' diff --git a/ChatLayout/Classes/Core/ChatLayout.swift b/ChatLayout/Classes/Core/ChatLayout.swift index 268e99d0..fabee03a 100644 --- a/ChatLayout/Classes/Core/ChatLayout.swift +++ b/ChatLayout/Classes/Core/ChatLayout.swift @@ -112,6 +112,11 @@ public final class ChatLayout: UICollectionViewLayout { return contentSize } + /// There is an issue in IOS 15.1 that proposed content offset is being ignored by the UICollectionView when user is scrolling. + /// This flag enables a hack to compensate this offset later. You can disable it if necessary. + /// Bug reported: https://feedbackassistant.apple.com/feedback/9727104 + public var enableIOS15_1Fix: Bool = true + // MARK: Internal Properties var adjustedContentInset: UIEdgeInsets { @@ -175,6 +180,12 @@ public final class ChatLayout: UICollectionViewLayout { private let _flipsHorizontallyInOppositeLayoutDirection: Bool + // MARK: IOS 15.1 fix flags + + private var needsIOS15_1IssueFix: Bool { + return enableIOS15_1Fix && isIOS15_1orHigher && isUserInitiatedScrolling && !controller.isAnimatedBoundsChange + } + // MARK: Constructors /// Default constructor. @@ -609,9 +620,16 @@ public final class ChatLayout: UICollectionViewLayout { let collectionView = collectionView { let minPossibleContentOffset = -collectionView.adjustedContentInset.top let newProposedContentOffset = CGPoint(x: proposedContentOffset.x, y: max(minPossibleContentOffset, min(proposedContentOffset.y + controller.proposedCompensatingOffset, maxPossibleContentOffset.y))) - controller.proposedCompensatingOffset = 0 invalidationActions.formUnion([.shouldInvalidateOnBoundsChange]) - return newProposedContentOffset + if needsIOS15_1IssueFix { + // This fix affects performance as UICollectionView will request cells event though they wont be visible on the screen. + // It also causes a small flickering as content offset is being fixed at `finalizeCollectionViewUpdates` instead. + controller.batchUpdateCompensatingOffset += controller.proposedCompensatingOffset + return super.targetContentOffset(forProposedContentOffset: proposedContentOffset) + } else { + controller.proposedCompensatingOffset = 0 + return newProposedContentOffset + } } return super.targetContentOffset(forProposedContentOffset: proposedContentOffset) } @@ -949,3 +967,12 @@ var isIOS13orHigher: Bool { return false } } + +@inline(__always) +var isIOS15_1orHigher: Bool { + if #available(iOS 15.1, *) { + return true + } else { + return false + } +} diff --git a/Example/Podfile.lock b/Example/Podfile.lock index 5e74b653..b11fb8c2 100644 --- a/Example/Podfile.lock +++ b/Example/Podfile.lock @@ -1,10 +1,10 @@ PODS: - - ChatLayout (1.1.13): - - ChatLayout/Ultimate (= 1.1.13) - - ChatLayout/Core (1.1.13) - - ChatLayout/Extras (1.1.13): + - ChatLayout (1.1.14): + - ChatLayout/Ultimate (= 1.1.14) + - ChatLayout/Core (1.1.14) + - ChatLayout/Extras (1.1.14): - ChatLayout/Core - - ChatLayout/Ultimate (1.1.13): + - ChatLayout/Ultimate (1.1.14): - ChatLayout/Core - ChatLayout/Extras - DifferenceKit (1.2.0): @@ -35,7 +35,7 @@ EXTERNAL SOURCES: :path: "../" SPEC CHECKSUMS: - ChatLayout: 3043e079e1b2e46239fc2f33bcbd3e679f1314cc + ChatLayout: 19b41ab293c2e3a07e79069506816c235cb51901 DifferenceKit: 5659c430bb7fe45876fa32ce5cba5d6167f0c805 FPSCounter: 884afec377de66637808c4f52ecc3b85a404732b InputBarAccessoryView: 74d471ab1fa1736806be50328df79257e52865a9 diff --git a/docs/Classes/CellLayoutContainerView.html b/docs/Classes/CellLayoutContainerView.html index 40803bda..b0787888 100644 --- a/docs/Classes/CellLayoutContainerView.html +++ b/docs/Classes/CellLayoutContainerView.html @@ -21,7 +21,7 @@

- ChatLayout 1.1.10 Docs + ChatLayout 1.1.14 Docs (100% documented)

@@ -457,7 +457,7 @@

Parameters

diff --git a/docs/Classes/ChatLayout.html b/docs/Classes/ChatLayout.html index 4fc96cc3..37651fc2 100644 --- a/docs/Classes/ChatLayout.html +++ b/docs/Classes/ChatLayout.html @@ -21,7 +21,7 @@

- ChatLayout 1.1.10 Docs + ChatLayout 1.1.14 Docs (100% documented)

@@ -481,6 +481,35 @@

Declaration

+
  • +
    + + + + enableIOS15_1Fix + +
    +
    +
    +
    +
    +
    +

    There is an issue in IOS 15.1 that proposed content offset is being ignored by the UICollectionView when user is scrolling. +This flag enables a hack to compensate this offset later. You can disable it if necessary. +Bug reported: https://feedbackassistant.apple.com/feedback/9727104

    + +
    +
    +

    Declaration

    +
    +

    Swift

    +
    public var enableIOS15_1Fix: Bool
    + +
    +
    +
    +
    +
  • @@ -1277,7 +1306,7 @@

    Declaration

    diff --git a/docs/Classes/ChatLayoutAttributes.html b/docs/Classes/ChatLayoutAttributes.html index 0653abaa..2b00e788 100644 --- a/docs/Classes/ChatLayoutAttributes.html +++ b/docs/Classes/ChatLayoutAttributes.html @@ -21,7 +21,7 @@

    - ChatLayout 1.1.10 Docs + ChatLayout 1.1.14 Docs (100% documented)

    @@ -416,7 +416,7 @@

    Declaration

    diff --git a/docs/Classes/ChatLayoutInvalidationContext.html b/docs/Classes/ChatLayoutInvalidationContext.html index 3f6e5764..ec5130f9 100644 --- a/docs/Classes/ChatLayoutInvalidationContext.html +++ b/docs/Classes/ChatLayoutInvalidationContext.html @@ -21,7 +21,7 @@

    - ChatLayout 1.1.10 Docs + ChatLayout 1.1.14 Docs (100% documented)

    @@ -201,7 +201,7 @@

    Declaration

    diff --git a/docs/Classes/ContainerCollectionReusableView.html b/docs/Classes/ContainerCollectionReusableView.html index 7bcb008a..f330b51d 100644 --- a/docs/Classes/ContainerCollectionReusableView.html +++ b/docs/Classes/ContainerCollectionReusableView.html @@ -21,7 +21,7 @@

    - ChatLayout 1.1.10 Docs + ChatLayout 1.1.14 Docs (100% documented)

    @@ -377,7 +377,7 @@

    Parameters

    diff --git a/docs/Classes/ContainerCollectionViewCell.html b/docs/Classes/ContainerCollectionViewCell.html index d29519ff..7c85eac7 100644 --- a/docs/Classes/ContainerCollectionViewCell.html +++ b/docs/Classes/ContainerCollectionViewCell.html @@ -21,7 +21,7 @@

    - ChatLayout 1.1.10 Docs + ChatLayout 1.1.14 Docs (100% documented)

    @@ -377,7 +377,7 @@

    Parameters

    diff --git a/docs/Classes/EdgeAligningView.html b/docs/Classes/EdgeAligningView.html index 4e07318b..ce944c5b 100644 --- a/docs/Classes/EdgeAligningView.html +++ b/docs/Classes/EdgeAligningView.html @@ -21,7 +21,7 @@

    - ChatLayout 1.1.10 Docs + ChatLayout 1.1.14 Docs (100% documented)

    @@ -361,7 +361,7 @@

    Parameters

    diff --git a/docs/Classes/EdgeAligningView/Edge.html b/docs/Classes/EdgeAligningView/Edge.html index 7d3c494d..4ea3d6f6 100644 --- a/docs/Classes/EdgeAligningView/Edge.html +++ b/docs/Classes/EdgeAligningView/Edge.html @@ -21,7 +21,7 @@

    - ChatLayout 1.1.10 Docs + ChatLayout 1.1.14 Docs (100% documented)

    @@ -281,7 +281,7 @@

    Declaration

    diff --git a/docs/Classes/ImageMaskedView.html b/docs/Classes/ImageMaskedView.html index 133980fc..3712cdc0 100644 --- a/docs/Classes/ImageMaskedView.html +++ b/docs/Classes/ImageMaskedView.html @@ -21,7 +21,7 @@

    - ChatLayout 1.1.10 Docs + ChatLayout 1.1.14 Docs (100% documented)

    @@ -401,7 +401,7 @@

    Declaration

    diff --git a/docs/Classes/MessageContainerView.html b/docs/Classes/MessageContainerView.html index 9343235f..625a2922 100644 --- a/docs/Classes/MessageContainerView.html +++ b/docs/Classes/MessageContainerView.html @@ -21,7 +21,7 @@

    - ChatLayout 1.1.10 Docs + ChatLayout 1.1.14 Docs (100% documented)

    @@ -347,7 +347,7 @@

    Parameters

    diff --git a/docs/Classes/RoundedCornersContainerView.html b/docs/Classes/RoundedCornersContainerView.html index f1d9ed9e..7a7cb9bf 100644 --- a/docs/Classes/RoundedCornersContainerView.html +++ b/docs/Classes/RoundedCornersContainerView.html @@ -21,7 +21,7 @@

    - ChatLayout 1.1.10 Docs + ChatLayout 1.1.14 Docs (100% documented)

    @@ -347,7 +347,7 @@

    Declaration

    diff --git a/docs/Core.html b/docs/Core.html index 991d59af..b241c596 100644 --- a/docs/Core.html +++ b/docs/Core.html @@ -21,7 +21,7 @@

    - ChatLayout 1.1.10 Docs + ChatLayout 1.1.14 Docs (100% documented)

    @@ -435,7 +435,7 @@

    Declaration

    diff --git a/docs/Enums/CellLayoutContainerViewAlignment.html b/docs/Enums/CellLayoutContainerViewAlignment.html index 0e230d52..7e1ef034 100644 --- a/docs/Enums/CellLayoutContainerViewAlignment.html +++ b/docs/Enums/CellLayoutContainerViewAlignment.html @@ -21,7 +21,7 @@

    - ChatLayout 1.1.10 Docs + ChatLayout 1.1.14 Docs (100% documented)

    @@ -281,7 +281,7 @@

    Declaration

    diff --git a/docs/Enums/ChatItemAlignment.html b/docs/Enums/ChatItemAlignment.html index 145c8822..3dc5bcc8 100644 --- a/docs/Enums/ChatItemAlignment.html +++ b/docs/Enums/ChatItemAlignment.html @@ -21,7 +21,7 @@

    - ChatLayout 1.1.10 Docs + ChatLayout 1.1.14 Docs (100% documented)

    @@ -281,7 +281,7 @@

    Declaration

    diff --git a/docs/Enums/ImageMaskedViewTransformation.html b/docs/Enums/ImageMaskedViewTransformation.html index 457aa0db..b83e6b29 100644 --- a/docs/Enums/ImageMaskedViewTransformation.html +++ b/docs/Enums/ImageMaskedViewTransformation.html @@ -21,7 +21,7 @@

    - ChatLayout 1.1.10 Docs + ChatLayout 1.1.14 Docs (100% documented)

    @@ -227,7 +227,7 @@

    Declaration

    diff --git a/docs/Enums/InitialAttributesRequestType.html b/docs/Enums/InitialAttributesRequestType.html index a3f5c0f4..59dabfc3 100644 --- a/docs/Enums/InitialAttributesRequestType.html +++ b/docs/Enums/InitialAttributesRequestType.html @@ -21,7 +21,7 @@

    - ChatLayout 1.1.10 Docs + ChatLayout 1.1.14 Docs (100% documented)

    @@ -227,7 +227,7 @@

    Declaration

    diff --git a/docs/Enums/ItemKind.html b/docs/Enums/ItemKind.html index 2c7a20f4..f67f7ea3 100644 --- a/docs/Enums/ItemKind.html +++ b/docs/Enums/ItemKind.html @@ -21,7 +21,7 @@

    - ChatLayout 1.1.10 Docs + ChatLayout 1.1.14 Docs (100% documented)

    @@ -281,7 +281,7 @@

    Declaration

    diff --git a/docs/Enums/ItemSize.html b/docs/Enums/ItemSize.html index 07222c25..e262b0ce 100644 --- a/docs/Enums/ItemSize.html +++ b/docs/Enums/ItemSize.html @@ -21,7 +21,7 @@

    - ChatLayout 1.1.10 Docs + ChatLayout 1.1.14 Docs (100% documented)

    @@ -254,7 +254,7 @@

    Declaration

    diff --git a/docs/Extras.html b/docs/Extras.html index 19a8dbc9..b78c3e0a 100644 --- a/docs/Extras.html +++ b/docs/Extras.html @@ -21,7 +21,7 @@

    - ChatLayout 1.1.10 Docs + ChatLayout 1.1.14 Docs (100% documented)

    @@ -505,7 +505,7 @@

    Declaration

    diff --git a/docs/Other Enums.html b/docs/Other Enums.html index 8e0ed5b7..cddadfb7 100644 --- a/docs/Other Enums.html +++ b/docs/Other Enums.html @@ -21,7 +21,7 @@

    - ChatLayout 1.1.10 Docs + ChatLayout 1.1.14 Docs (100% documented)

    @@ -194,7 +194,7 @@

    Declaration

    diff --git a/docs/Other Guides.html b/docs/Other Guides.html index 320496fe..cb4534d4 100644 --- a/docs/Other Guides.html +++ b/docs/Other Guides.html @@ -21,7 +21,7 @@

    - ChatLayout 1.1.10 Docs + ChatLayout 1.1.14 Docs (100% documented)

    @@ -175,7 +175,7 @@

    Other Guides

    diff --git a/docs/Protocols/ChatLayoutDelegate.html b/docs/Protocols/ChatLayoutDelegate.html index a14ee134..dcdd2834 100644 --- a/docs/Protocols/ChatLayoutDelegate.html +++ b/docs/Protocols/ChatLayoutDelegate.html @@ -21,7 +21,7 @@

    - ChatLayout 1.1.10 Docs + ChatLayout 1.1.14 Docs (100% documented)

    @@ -573,7 +573,7 @@

    Declaration

    diff --git a/docs/Protocols/ContainerCollectionViewCellDelegate.html b/docs/Protocols/ContainerCollectionViewCellDelegate.html index eb678704..aa1aa02e 100644 --- a/docs/Protocols/ContainerCollectionViewCellDelegate.html +++ b/docs/Protocols/ContainerCollectionViewCellDelegate.html @@ -21,7 +21,7 @@

    - ChatLayout 1.1.10 Docs + ChatLayout 1.1.14 Docs (100% documented)

    @@ -386,7 +386,7 @@

    Parameters

    diff --git a/docs/Protocols/StaticViewFactory.html b/docs/Protocols/StaticViewFactory.html index 71c9c8a4..d9f14bf7 100644 --- a/docs/Protocols/StaticViewFactory.html +++ b/docs/Protocols/StaticViewFactory.html @@ -21,7 +21,7 @@

    - ChatLayout 1.1.10 Docs + ChatLayout 1.1.14 Docs (100% documented)

    @@ -250,7 +250,7 @@

    Return Value

    diff --git a/docs/Structs/ChatLayoutPositionSnapshot.html b/docs/Structs/ChatLayoutPositionSnapshot.html index b2667366..9228cfc6 100644 --- a/docs/Structs/ChatLayoutPositionSnapshot.html +++ b/docs/Structs/ChatLayoutPositionSnapshot.html @@ -21,7 +21,7 @@

    - ChatLayout 1.1.10 Docs + ChatLayout 1.1.14 Docs (100% documented)

    @@ -394,7 +394,7 @@

    Parameters

    diff --git a/docs/Structs/ChatLayoutPositionSnapshot/Edge.html b/docs/Structs/ChatLayoutPositionSnapshot/Edge.html index 649806ce..410618aa 100644 --- a/docs/Structs/ChatLayoutPositionSnapshot/Edge.html +++ b/docs/Structs/ChatLayoutPositionSnapshot/Edge.html @@ -21,7 +21,7 @@

    - ChatLayout 1.1.10 Docs + ChatLayout 1.1.14 Docs (100% documented)

    @@ -227,7 +227,7 @@

    Declaration

    diff --git a/docs/Structs/ChatLayoutSettings.html b/docs/Structs/ChatLayoutSettings.html index 2efa9707..c4903506 100644 --- a/docs/Structs/ChatLayoutSettings.html +++ b/docs/Structs/ChatLayoutSettings.html @@ -21,7 +21,7 @@

    - ChatLayout 1.1.10 Docs + ChatLayout 1.1.14 Docs (100% documented)

    @@ -282,7 +282,7 @@

    Declaration

    diff --git a/docs/Structs/VoidViewFactory.html b/docs/Structs/VoidViewFactory.html index 8912e1dc..701cb4d0 100644 --- a/docs/Structs/VoidViewFactory.html +++ b/docs/Structs/VoidViewFactory.html @@ -21,7 +21,7 @@

    - ChatLayout 1.1.10 Docs + ChatLayout 1.1.14 Docs (100% documented)

    @@ -226,7 +226,7 @@

    Declaration

    diff --git a/docs/docsets/ChatLayout.docset/Contents/Resources/Documents/Classes/CellLayoutContainerView.html b/docs/docsets/ChatLayout.docset/Contents/Resources/Documents/Classes/CellLayoutContainerView.html index 40803bda..b0787888 100644 --- a/docs/docsets/ChatLayout.docset/Contents/Resources/Documents/Classes/CellLayoutContainerView.html +++ b/docs/docsets/ChatLayout.docset/Contents/Resources/Documents/Classes/CellLayoutContainerView.html @@ -21,7 +21,7 @@

    - ChatLayout 1.1.10 Docs + ChatLayout 1.1.14 Docs (100% documented)

    @@ -457,7 +457,7 @@

    Parameters

    diff --git a/docs/docsets/ChatLayout.docset/Contents/Resources/Documents/Classes/ChatLayout.html b/docs/docsets/ChatLayout.docset/Contents/Resources/Documents/Classes/ChatLayout.html index 4fc96cc3..37651fc2 100644 --- a/docs/docsets/ChatLayout.docset/Contents/Resources/Documents/Classes/ChatLayout.html +++ b/docs/docsets/ChatLayout.docset/Contents/Resources/Documents/Classes/ChatLayout.html @@ -21,7 +21,7 @@

    - ChatLayout 1.1.10 Docs + ChatLayout 1.1.14 Docs (100% documented)

    @@ -481,6 +481,35 @@

    Declaration

    +
  • +
    + + + + enableIOS15_1Fix + +
    +
    +
    +
    +
    +
    +

    There is an issue in IOS 15.1 that proposed content offset is being ignored by the UICollectionView when user is scrolling. +This flag enables a hack to compensate this offset later. You can disable it if necessary. +Bug reported: https://feedbackassistant.apple.com/feedback/9727104

    + +
    +
    +

    Declaration

    +
    +

    Swift

    +
    public var enableIOS15_1Fix: Bool
    + +
    +
    +
    +
    +
  • @@ -1277,7 +1306,7 @@

    Declaration

    diff --git a/docs/docsets/ChatLayout.docset/Contents/Resources/Documents/Classes/ChatLayoutAttributes.html b/docs/docsets/ChatLayout.docset/Contents/Resources/Documents/Classes/ChatLayoutAttributes.html index 0653abaa..2b00e788 100644 --- a/docs/docsets/ChatLayout.docset/Contents/Resources/Documents/Classes/ChatLayoutAttributes.html +++ b/docs/docsets/ChatLayout.docset/Contents/Resources/Documents/Classes/ChatLayoutAttributes.html @@ -21,7 +21,7 @@

    - ChatLayout 1.1.10 Docs + ChatLayout 1.1.14 Docs (100% documented)

    @@ -416,7 +416,7 @@

    Declaration

    diff --git a/docs/docsets/ChatLayout.docset/Contents/Resources/Documents/Classes/ChatLayoutInvalidationContext.html b/docs/docsets/ChatLayout.docset/Contents/Resources/Documents/Classes/ChatLayoutInvalidationContext.html index 3f6e5764..ec5130f9 100644 --- a/docs/docsets/ChatLayout.docset/Contents/Resources/Documents/Classes/ChatLayoutInvalidationContext.html +++ b/docs/docsets/ChatLayout.docset/Contents/Resources/Documents/Classes/ChatLayoutInvalidationContext.html @@ -21,7 +21,7 @@

    - ChatLayout 1.1.10 Docs + ChatLayout 1.1.14 Docs (100% documented)

    @@ -201,7 +201,7 @@

    Declaration

    diff --git a/docs/docsets/ChatLayout.docset/Contents/Resources/Documents/Classes/ContainerCollectionReusableView.html b/docs/docsets/ChatLayout.docset/Contents/Resources/Documents/Classes/ContainerCollectionReusableView.html index 7bcb008a..f330b51d 100644 --- a/docs/docsets/ChatLayout.docset/Contents/Resources/Documents/Classes/ContainerCollectionReusableView.html +++ b/docs/docsets/ChatLayout.docset/Contents/Resources/Documents/Classes/ContainerCollectionReusableView.html @@ -21,7 +21,7 @@

    - ChatLayout 1.1.10 Docs + ChatLayout 1.1.14 Docs (100% documented)

    @@ -377,7 +377,7 @@

    Parameters

    diff --git a/docs/docsets/ChatLayout.docset/Contents/Resources/Documents/Classes/ContainerCollectionViewCell.html b/docs/docsets/ChatLayout.docset/Contents/Resources/Documents/Classes/ContainerCollectionViewCell.html index d29519ff..7c85eac7 100644 --- a/docs/docsets/ChatLayout.docset/Contents/Resources/Documents/Classes/ContainerCollectionViewCell.html +++ b/docs/docsets/ChatLayout.docset/Contents/Resources/Documents/Classes/ContainerCollectionViewCell.html @@ -21,7 +21,7 @@

    - ChatLayout 1.1.10 Docs + ChatLayout 1.1.14 Docs (100% documented)

    @@ -377,7 +377,7 @@

    Parameters

    diff --git a/docs/docsets/ChatLayout.docset/Contents/Resources/Documents/Classes/EdgeAligningView.html b/docs/docsets/ChatLayout.docset/Contents/Resources/Documents/Classes/EdgeAligningView.html index 4e07318b..ce944c5b 100644 --- a/docs/docsets/ChatLayout.docset/Contents/Resources/Documents/Classes/EdgeAligningView.html +++ b/docs/docsets/ChatLayout.docset/Contents/Resources/Documents/Classes/EdgeAligningView.html @@ -21,7 +21,7 @@

    - ChatLayout 1.1.10 Docs + ChatLayout 1.1.14 Docs (100% documented)

    @@ -361,7 +361,7 @@

    Parameters

    diff --git a/docs/docsets/ChatLayout.docset/Contents/Resources/Documents/Classes/EdgeAligningView/Edge.html b/docs/docsets/ChatLayout.docset/Contents/Resources/Documents/Classes/EdgeAligningView/Edge.html index 7d3c494d..4ea3d6f6 100644 --- a/docs/docsets/ChatLayout.docset/Contents/Resources/Documents/Classes/EdgeAligningView/Edge.html +++ b/docs/docsets/ChatLayout.docset/Contents/Resources/Documents/Classes/EdgeAligningView/Edge.html @@ -21,7 +21,7 @@

    - ChatLayout 1.1.10 Docs + ChatLayout 1.1.14 Docs (100% documented)

    @@ -281,7 +281,7 @@

    Declaration

    diff --git a/docs/docsets/ChatLayout.docset/Contents/Resources/Documents/Classes/ImageMaskedView.html b/docs/docsets/ChatLayout.docset/Contents/Resources/Documents/Classes/ImageMaskedView.html index 133980fc..3712cdc0 100644 --- a/docs/docsets/ChatLayout.docset/Contents/Resources/Documents/Classes/ImageMaskedView.html +++ b/docs/docsets/ChatLayout.docset/Contents/Resources/Documents/Classes/ImageMaskedView.html @@ -21,7 +21,7 @@

    - ChatLayout 1.1.10 Docs + ChatLayout 1.1.14 Docs (100% documented)

    @@ -401,7 +401,7 @@

    Declaration

    diff --git a/docs/docsets/ChatLayout.docset/Contents/Resources/Documents/Classes/MessageContainerView.html b/docs/docsets/ChatLayout.docset/Contents/Resources/Documents/Classes/MessageContainerView.html index 9343235f..625a2922 100644 --- a/docs/docsets/ChatLayout.docset/Contents/Resources/Documents/Classes/MessageContainerView.html +++ b/docs/docsets/ChatLayout.docset/Contents/Resources/Documents/Classes/MessageContainerView.html @@ -21,7 +21,7 @@

    - ChatLayout 1.1.10 Docs + ChatLayout 1.1.14 Docs (100% documented)

    @@ -347,7 +347,7 @@

    Parameters

    diff --git a/docs/docsets/ChatLayout.docset/Contents/Resources/Documents/Classes/RoundedCornersContainerView.html b/docs/docsets/ChatLayout.docset/Contents/Resources/Documents/Classes/RoundedCornersContainerView.html index f1d9ed9e..7a7cb9bf 100644 --- a/docs/docsets/ChatLayout.docset/Contents/Resources/Documents/Classes/RoundedCornersContainerView.html +++ b/docs/docsets/ChatLayout.docset/Contents/Resources/Documents/Classes/RoundedCornersContainerView.html @@ -21,7 +21,7 @@

    - ChatLayout 1.1.10 Docs + ChatLayout 1.1.14 Docs (100% documented)

    @@ -347,7 +347,7 @@

    Declaration

    diff --git a/docs/docsets/ChatLayout.docset/Contents/Resources/Documents/Core.html b/docs/docsets/ChatLayout.docset/Contents/Resources/Documents/Core.html index 991d59af..b241c596 100644 --- a/docs/docsets/ChatLayout.docset/Contents/Resources/Documents/Core.html +++ b/docs/docsets/ChatLayout.docset/Contents/Resources/Documents/Core.html @@ -21,7 +21,7 @@

    - ChatLayout 1.1.10 Docs + ChatLayout 1.1.14 Docs (100% documented)

    @@ -435,7 +435,7 @@

    Declaration

    diff --git a/docs/docsets/ChatLayout.docset/Contents/Resources/Documents/Enums/CellLayoutContainerViewAlignment.html b/docs/docsets/ChatLayout.docset/Contents/Resources/Documents/Enums/CellLayoutContainerViewAlignment.html index 0e230d52..7e1ef034 100644 --- a/docs/docsets/ChatLayout.docset/Contents/Resources/Documents/Enums/CellLayoutContainerViewAlignment.html +++ b/docs/docsets/ChatLayout.docset/Contents/Resources/Documents/Enums/CellLayoutContainerViewAlignment.html @@ -21,7 +21,7 @@

    - ChatLayout 1.1.10 Docs + ChatLayout 1.1.14 Docs (100% documented)

    @@ -281,7 +281,7 @@

    Declaration

    diff --git a/docs/docsets/ChatLayout.docset/Contents/Resources/Documents/Enums/ChatItemAlignment.html b/docs/docsets/ChatLayout.docset/Contents/Resources/Documents/Enums/ChatItemAlignment.html index 145c8822..3dc5bcc8 100644 --- a/docs/docsets/ChatLayout.docset/Contents/Resources/Documents/Enums/ChatItemAlignment.html +++ b/docs/docsets/ChatLayout.docset/Contents/Resources/Documents/Enums/ChatItemAlignment.html @@ -21,7 +21,7 @@

    - ChatLayout 1.1.10 Docs + ChatLayout 1.1.14 Docs (100% documented)

    @@ -281,7 +281,7 @@

    Declaration

    diff --git a/docs/docsets/ChatLayout.docset/Contents/Resources/Documents/Enums/ImageMaskedViewTransformation.html b/docs/docsets/ChatLayout.docset/Contents/Resources/Documents/Enums/ImageMaskedViewTransformation.html index 457aa0db..b83e6b29 100644 --- a/docs/docsets/ChatLayout.docset/Contents/Resources/Documents/Enums/ImageMaskedViewTransformation.html +++ b/docs/docsets/ChatLayout.docset/Contents/Resources/Documents/Enums/ImageMaskedViewTransformation.html @@ -21,7 +21,7 @@

    - ChatLayout 1.1.10 Docs + ChatLayout 1.1.14 Docs (100% documented)

    @@ -227,7 +227,7 @@

    Declaration

    diff --git a/docs/docsets/ChatLayout.docset/Contents/Resources/Documents/Enums/InitialAttributesRequestType.html b/docs/docsets/ChatLayout.docset/Contents/Resources/Documents/Enums/InitialAttributesRequestType.html index a3f5c0f4..59dabfc3 100644 --- a/docs/docsets/ChatLayout.docset/Contents/Resources/Documents/Enums/InitialAttributesRequestType.html +++ b/docs/docsets/ChatLayout.docset/Contents/Resources/Documents/Enums/InitialAttributesRequestType.html @@ -21,7 +21,7 @@

    - ChatLayout 1.1.10 Docs + ChatLayout 1.1.14 Docs (100% documented)

    @@ -227,7 +227,7 @@

    Declaration

    diff --git a/docs/docsets/ChatLayout.docset/Contents/Resources/Documents/Enums/ItemKind.html b/docs/docsets/ChatLayout.docset/Contents/Resources/Documents/Enums/ItemKind.html index 2c7a20f4..f67f7ea3 100644 --- a/docs/docsets/ChatLayout.docset/Contents/Resources/Documents/Enums/ItemKind.html +++ b/docs/docsets/ChatLayout.docset/Contents/Resources/Documents/Enums/ItemKind.html @@ -21,7 +21,7 @@

    - ChatLayout 1.1.10 Docs + ChatLayout 1.1.14 Docs (100% documented)

    @@ -281,7 +281,7 @@

    Declaration

    diff --git a/docs/docsets/ChatLayout.docset/Contents/Resources/Documents/Enums/ItemSize.html b/docs/docsets/ChatLayout.docset/Contents/Resources/Documents/Enums/ItemSize.html index 07222c25..e262b0ce 100644 --- a/docs/docsets/ChatLayout.docset/Contents/Resources/Documents/Enums/ItemSize.html +++ b/docs/docsets/ChatLayout.docset/Contents/Resources/Documents/Enums/ItemSize.html @@ -21,7 +21,7 @@

    - ChatLayout 1.1.10 Docs + ChatLayout 1.1.14 Docs (100% documented)

    @@ -254,7 +254,7 @@

    Declaration

    diff --git a/docs/docsets/ChatLayout.docset/Contents/Resources/Documents/Extras.html b/docs/docsets/ChatLayout.docset/Contents/Resources/Documents/Extras.html index 19a8dbc9..b78c3e0a 100644 --- a/docs/docsets/ChatLayout.docset/Contents/Resources/Documents/Extras.html +++ b/docs/docsets/ChatLayout.docset/Contents/Resources/Documents/Extras.html @@ -21,7 +21,7 @@

    - ChatLayout 1.1.10 Docs + ChatLayout 1.1.14 Docs (100% documented)

    @@ -505,7 +505,7 @@

    Declaration

    diff --git a/docs/docsets/ChatLayout.docset/Contents/Resources/Documents/Other Enums.html b/docs/docsets/ChatLayout.docset/Contents/Resources/Documents/Other Enums.html index 8e0ed5b7..cddadfb7 100644 --- a/docs/docsets/ChatLayout.docset/Contents/Resources/Documents/Other Enums.html +++ b/docs/docsets/ChatLayout.docset/Contents/Resources/Documents/Other Enums.html @@ -21,7 +21,7 @@

    - ChatLayout 1.1.10 Docs + ChatLayout 1.1.14 Docs (100% documented)

    @@ -194,7 +194,7 @@

    Declaration

    diff --git a/docs/docsets/ChatLayout.docset/Contents/Resources/Documents/Other Guides.html b/docs/docsets/ChatLayout.docset/Contents/Resources/Documents/Other Guides.html index 320496fe..cb4534d4 100644 --- a/docs/docsets/ChatLayout.docset/Contents/Resources/Documents/Other Guides.html +++ b/docs/docsets/ChatLayout.docset/Contents/Resources/Documents/Other Guides.html @@ -21,7 +21,7 @@

    - ChatLayout 1.1.10 Docs + ChatLayout 1.1.14 Docs (100% documented)

    @@ -175,7 +175,7 @@

    Other Guides

    diff --git a/docs/docsets/ChatLayout.docset/Contents/Resources/Documents/Protocols/ChatLayoutDelegate.html b/docs/docsets/ChatLayout.docset/Contents/Resources/Documents/Protocols/ChatLayoutDelegate.html index a14ee134..dcdd2834 100644 --- a/docs/docsets/ChatLayout.docset/Contents/Resources/Documents/Protocols/ChatLayoutDelegate.html +++ b/docs/docsets/ChatLayout.docset/Contents/Resources/Documents/Protocols/ChatLayoutDelegate.html @@ -21,7 +21,7 @@

    - ChatLayout 1.1.10 Docs + ChatLayout 1.1.14 Docs (100% documented)

    @@ -573,7 +573,7 @@

    Declaration

    diff --git a/docs/docsets/ChatLayout.docset/Contents/Resources/Documents/Protocols/ContainerCollectionViewCellDelegate.html b/docs/docsets/ChatLayout.docset/Contents/Resources/Documents/Protocols/ContainerCollectionViewCellDelegate.html index eb678704..aa1aa02e 100644 --- a/docs/docsets/ChatLayout.docset/Contents/Resources/Documents/Protocols/ContainerCollectionViewCellDelegate.html +++ b/docs/docsets/ChatLayout.docset/Contents/Resources/Documents/Protocols/ContainerCollectionViewCellDelegate.html @@ -21,7 +21,7 @@

    - ChatLayout 1.1.10 Docs + ChatLayout 1.1.14 Docs (100% documented)

    @@ -386,7 +386,7 @@

    Parameters

    diff --git a/docs/docsets/ChatLayout.docset/Contents/Resources/Documents/Protocols/StaticViewFactory.html b/docs/docsets/ChatLayout.docset/Contents/Resources/Documents/Protocols/StaticViewFactory.html index 71c9c8a4..d9f14bf7 100644 --- a/docs/docsets/ChatLayout.docset/Contents/Resources/Documents/Protocols/StaticViewFactory.html +++ b/docs/docsets/ChatLayout.docset/Contents/Resources/Documents/Protocols/StaticViewFactory.html @@ -21,7 +21,7 @@

    - ChatLayout 1.1.10 Docs + ChatLayout 1.1.14 Docs (100% documented)

    @@ -250,7 +250,7 @@

    Return Value

    diff --git a/docs/docsets/ChatLayout.docset/Contents/Resources/Documents/Structs/ChatLayoutPositionSnapshot.html b/docs/docsets/ChatLayout.docset/Contents/Resources/Documents/Structs/ChatLayoutPositionSnapshot.html index b2667366..9228cfc6 100644 --- a/docs/docsets/ChatLayout.docset/Contents/Resources/Documents/Structs/ChatLayoutPositionSnapshot.html +++ b/docs/docsets/ChatLayout.docset/Contents/Resources/Documents/Structs/ChatLayoutPositionSnapshot.html @@ -21,7 +21,7 @@

    - ChatLayout 1.1.10 Docs + ChatLayout 1.1.14 Docs (100% documented)

    @@ -394,7 +394,7 @@

    Parameters

    diff --git a/docs/docsets/ChatLayout.docset/Contents/Resources/Documents/Structs/ChatLayoutPositionSnapshot/Edge.html b/docs/docsets/ChatLayout.docset/Contents/Resources/Documents/Structs/ChatLayoutPositionSnapshot/Edge.html index 649806ce..410618aa 100644 --- a/docs/docsets/ChatLayout.docset/Contents/Resources/Documents/Structs/ChatLayoutPositionSnapshot/Edge.html +++ b/docs/docsets/ChatLayout.docset/Contents/Resources/Documents/Structs/ChatLayoutPositionSnapshot/Edge.html @@ -21,7 +21,7 @@

    - ChatLayout 1.1.10 Docs + ChatLayout 1.1.14 Docs (100% documented)

    @@ -227,7 +227,7 @@

    Declaration

    diff --git a/docs/docsets/ChatLayout.docset/Contents/Resources/Documents/Structs/ChatLayoutSettings.html b/docs/docsets/ChatLayout.docset/Contents/Resources/Documents/Structs/ChatLayoutSettings.html index 2efa9707..c4903506 100644 --- a/docs/docsets/ChatLayout.docset/Contents/Resources/Documents/Structs/ChatLayoutSettings.html +++ b/docs/docsets/ChatLayout.docset/Contents/Resources/Documents/Structs/ChatLayoutSettings.html @@ -21,7 +21,7 @@

    - ChatLayout 1.1.10 Docs + ChatLayout 1.1.14 Docs (100% documented)

    @@ -282,7 +282,7 @@

    Declaration

    diff --git a/docs/docsets/ChatLayout.docset/Contents/Resources/Documents/Structs/VoidViewFactory.html b/docs/docsets/ChatLayout.docset/Contents/Resources/Documents/Structs/VoidViewFactory.html index 8912e1dc..701cb4d0 100644 --- a/docs/docsets/ChatLayout.docset/Contents/Resources/Documents/Structs/VoidViewFactory.html +++ b/docs/docsets/ChatLayout.docset/Contents/Resources/Documents/Structs/VoidViewFactory.html @@ -21,7 +21,7 @@

    - ChatLayout 1.1.10 Docs + ChatLayout 1.1.14 Docs (100% documented)

    @@ -226,7 +226,7 @@

    Declaration

    diff --git a/docs/docsets/ChatLayout.docset/Contents/Resources/Documents/index.html b/docs/docsets/ChatLayout.docset/Contents/Resources/Documents/index.html index 24a4d74c..b7d1bf10 100644 --- a/docs/docsets/ChatLayout.docset/Contents/Resources/Documents/index.html +++ b/docs/docsets/ChatLayout.docset/Contents/Resources/Documents/index.html @@ -20,7 +20,7 @@

    - ChatLayout 1.1.10 Docs + ChatLayout 1.1.14 Docs (100% documented)

    @@ -323,7 +323,7 @@

    Author

    diff --git a/docs/docsets/ChatLayout.docset/Contents/Resources/Documents/readme.html b/docs/docsets/ChatLayout.docset/Contents/Resources/Documents/readme.html index 34554140..bff95332 100644 --- a/docs/docsets/ChatLayout.docset/Contents/Resources/Documents/readme.html +++ b/docs/docsets/ChatLayout.docset/Contents/Resources/Documents/readme.html @@ -20,7 +20,7 @@

    - ChatLayout 1.1.10 Docs + ChatLayout 1.1.14 Docs (100% documented)

    @@ -323,7 +323,7 @@

    Author

    diff --git a/docs/docsets/ChatLayout.docset/Contents/Resources/Documents/search.json b/docs/docsets/ChatLayout.docset/Contents/Resources/Documents/search.json index 47875518..ad159f23 100644 --- a/docs/docsets/ChatLayout.docset/Contents/Resources/Documents/search.json +++ b/docs/docsets/ChatLayout.docset/Contents/Resources/Documents/search.json @@ -1 +1 @@ -{"Enums/InitialAttributesRequestType.html#/s:10ChatLayout28InitialAttributesRequestTypeO7initialyA2CmF":{"name":"initial","abstract":"

    UICollectionView initially asks about the layout of an item.

    ","parent_name":"InitialAttributesRequestType"},"Enums/InitialAttributesRequestType.html#/s:10ChatLayout28InitialAttributesRequestTypeO12invalidationyA2CmF":{"name":"invalidation","abstract":"

    An item is being invalidated.

    ","parent_name":"InitialAttributesRequestType"},"Enums/InitialAttributesRequestType.html":{"name":"InitialAttributesRequestType","abstract":"

    Represents the point in time ChatLayout when chat layout asks about layout attributes modification.

    "},"readme.html":{"name":"README"},"Structs/VoidViewFactory.html#/s:10ChatLayout15VoidViewFactoryV0cD0C":{"name":"VoidView","abstract":"

    Nil view placeholder type.

    ","parent_name":"VoidViewFactory"},"Structs/VoidViewFactory.html#/s:10ChatLayout17StaticViewFactoryP05buildD06within0D0QzSgSo6CGRectV_tFZ":{"name":"buildView(within:)","parent_name":"VoidViewFactory"},"Protocols/StaticViewFactory.html#/s:10ChatLayout17StaticViewFactoryP0D0Qa":{"name":"View","abstract":"

    A type of the view to build.

    ","parent_name":"StaticViewFactory"},"Protocols/StaticViewFactory.html#/s:10ChatLayout17StaticViewFactoryP05buildD06within0D0QzSgSo6CGRectV_tFZ":{"name":"buildView(within:)","abstract":"

    Factory method that will be called by the corresponding container UIView

    ","parent_name":"StaticViewFactory"},"Classes/RoundedCornersContainerView.html#/s:10ChatLayout27RoundedCornersContainerViewC12cornerRadius12CoreGraphics7CGFloatVSgvp":{"name":"cornerRadius","abstract":"

    Corner radius. If not provided then the half of the current view height will be used.

    ","parent_name":"RoundedCornersContainerView"},"Classes/RoundedCornersContainerView.html#/s:10ChatLayout27RoundedCornersContainerViewC06customF0xvp":{"name":"customView","abstract":"

    Contained view.

    ","parent_name":"RoundedCornersContainerView"},"Classes/RoundedCornersContainerView.html#/s:10ChatLayout27RoundedCornersContainerViewC5frameACyxGSo6CGRectV_tcfc":{"name":"init(frame:)","abstract":"

    Initializes and returns a newly allocated view object with the specified frame rectangle.

    ","parent_name":"RoundedCornersContainerView"},"Classes/RoundedCornersContainerView.html#/s:10ChatLayout27RoundedCornersContainerViewC5coderACyxGSgSo7NSCoderC_tcfc":{"name":"init(coder:)","abstract":"

    Returns an object initialized from data in a given unarchiver.

    ","parent_name":"RoundedCornersContainerView"},"Classes/RoundedCornersContainerView.html#/s:10ChatLayout27RoundedCornersContainerViewC14layoutSubviewsyyF":{"name":"layoutSubviews()","abstract":"

    Lays out subviews.

    ","parent_name":"RoundedCornersContainerView"},"Enums/ImageMaskedViewTransformation.html#/s:10ChatLayout29ImageMaskedViewTransformationO4asIsyA2CmF":{"name":"asIs","abstract":"

    Keep image as it is.

    ","parent_name":"ImageMaskedViewTransformation"},"Enums/ImageMaskedViewTransformation.html#/s:10ChatLayout29ImageMaskedViewTransformationO17flippedVerticallyyA2CmF":{"name":"flippedVertically","abstract":"

    Flip image vertically.

    ","parent_name":"ImageMaskedViewTransformation"},"Classes/ImageMaskedView.html#/s:10ChatLayout15ImageMaskedViewC06customE0xvp":{"name":"customView","abstract":"

    Contained view.

    ","parent_name":"ImageMaskedView"},"Classes/ImageMaskedView.html#/s:10ChatLayout15ImageMaskedViewC07maskingC0So7UIImageCSgvp":{"name":"maskingImage","abstract":"

    An Image to be used as a mask for the customView.

    ","parent_name":"ImageMaskedView"},"Classes/ImageMaskedView.html#/s:10ChatLayout15ImageMaskedViewC18maskTransformationAA0cdeG0Ovp":{"name":"maskTransformation","abstract":"

    A transformation to apply to the maskingImage.

    ","parent_name":"ImageMaskedView"},"Classes/ImageMaskedView.html#/s:10ChatLayout15ImageMaskedViewC5frameACyxGSo6CGRectV_tcfc":{"name":"init(frame:)","abstract":"

    Initializes and returns a newly allocated view object with the specified frame rectangle.

    ","parent_name":"ImageMaskedView"},"Classes/ImageMaskedView.html#/s:10ChatLayout15ImageMaskedViewC5coderACyxGSgSo7NSCoderC_tcfc":{"name":"init(coder:)","abstract":"

    Returns an object initialized from data in a given unarchiver.

    ","parent_name":"ImageMaskedView"},"Classes/ImageMaskedView.html#/s:10ChatLayout15ImageMaskedViewC5frameSo6CGRectVvp":{"name":"frame","abstract":"

    The frame rectangle, which describes the view’s location and size in its superview’s coordinate system.

    ","parent_name":"ImageMaskedView"},"Classes/ImageMaskedView.html#/s:10ChatLayout15ImageMaskedViewC6boundsSo6CGRectVvp":{"name":"bounds","abstract":"

    The bounds rectangle, which describes the view’s location and size in its own coordinate system.

    ","parent_name":"ImageMaskedView"},"Classes/EdgeAligningView/Edge.html#/s:10ChatLayout16EdgeAligningViewC0C0O3topyAEyx_GAGmSo6UIViewCRbzlF":{"name":"top","abstract":"

    Top edge

    ","parent_name":"Edge"},"Classes/EdgeAligningView/Edge.html#/s:10ChatLayout16EdgeAligningViewC0C0O7leadingyAEyx_GAGmSo6UIViewCRbzlF":{"name":"leading","abstract":"

    Leading edge

    ","parent_name":"Edge"},"Classes/EdgeAligningView/Edge.html#/s:10ChatLayout16EdgeAligningViewC0C0O8trailingyAEyx_GAGmSo6UIViewCRbzlF":{"name":"trailing","abstract":"

    Trailing edge

    ","parent_name":"Edge"},"Classes/EdgeAligningView/Edge.html#/s:10ChatLayout16EdgeAligningViewC0C0O6bottomyAEyx_GAGmSo6UIViewCRbzlF":{"name":"bottom","abstract":"

    Bottom edge

    ","parent_name":"Edge"},"Classes/EdgeAligningView/Edge.html":{"name":"Edge","abstract":"

    Represents an edge of EdgeAligningView

    ","parent_name":"EdgeAligningView"},"Classes/EdgeAligningView.html#/s:10ChatLayout16EdgeAligningViewC13flexibleEdgesShyAC0C0Oyx_GGvp":{"name":"flexibleEdges","abstract":"

    Set of edge constraints to be set as loose.

    ","parent_name":"EdgeAligningView"},"Classes/EdgeAligningView.html#/s:10ChatLayout16EdgeAligningViewC06customE0xvp":{"name":"customView","abstract":"

    Contained view.

    ","parent_name":"EdgeAligningView"},"Classes/EdgeAligningView.html#/s:10ChatLayout16EdgeAligningViewC4with13flexibleEdgesACyxGx_ShyAC0C0Oyx_GGtcfc":{"name":"init(with:flexibleEdges:)","abstract":"

    Initializes and returns a newly allocated EdgeAligningView

    ","parent_name":"EdgeAligningView"},"Classes/EdgeAligningView.html#/s:10ChatLayout16EdgeAligningViewC5frameACyxGSo6CGRectV_tcfc":{"name":"init(frame:)","abstract":"

    Initializes and returns a newly allocated view object with the specified frame rectangle.

    ","parent_name":"EdgeAligningView"},"Enums/CellLayoutContainerViewAlignment.html#/s:10ChatLayout04CellB22ContainerViewAlignmentO4fillyA2CmF":{"name":"fill","abstract":"

    Align the top and bottom edges of horizontally stacked items tightly to the container.

    ","parent_name":"CellLayoutContainerViewAlignment"},"Enums/CellLayoutContainerViewAlignment.html#/s:10ChatLayout04CellB22ContainerViewAlignmentO3topyA2CmF":{"name":"top","abstract":"

    Align the top edges of horizontally stacked items tightly to the container.

    ","parent_name":"CellLayoutContainerViewAlignment"},"Enums/CellLayoutContainerViewAlignment.html#/s:10ChatLayout04CellB22ContainerViewAlignmentO6centeryA2CmF":{"name":"center","abstract":"

    Center items in a horizontal stack vertically.

    ","parent_name":"CellLayoutContainerViewAlignment"},"Enums/CellLayoutContainerViewAlignment.html#/s:10ChatLayout04CellB22ContainerViewAlignmentO6bottomyA2CmF":{"name":"bottom","abstract":"

    Align the bottom edges of horizontally stacked items tightly to the container.

    ","parent_name":"CellLayoutContainerViewAlignment"},"Classes/CellLayoutContainerView.html#/s:10ChatLayout04CellB13ContainerViewC07leadingE00E0QzSgvp":{"name":"leadingView","abstract":"

    Leading accessory view.

    ","parent_name":"CellLayoutContainerView"},"Classes/CellLayoutContainerView.html#/s:10ChatLayout04CellB13ContainerViewC06customE0q_vp":{"name":"customView","abstract":"

    Main view.

    ","parent_name":"CellLayoutContainerView"},"Classes/CellLayoutContainerView.html#/s:10ChatLayout04CellB13ContainerViewC08trailingE00E0Qy0_Sgvp":{"name":"trailingView","abstract":"

    Trailing accessory view.

    ","parent_name":"CellLayoutContainerView"},"Classes/CellLayoutContainerView.html#/s:10ChatLayout04CellB13ContainerViewC9alignmentAA0cbdE9AlignmentOvp":{"name":"alignment","abstract":"

    Alignment that corresponds to UIStackView.Alignment

    ","parent_name":"CellLayoutContainerView"},"Classes/CellLayoutContainerView.html#/s:10ChatLayout04CellB13ContainerViewC7spacing12CoreGraphics7CGFloatVvp":{"name":"spacing","abstract":"

    Default spacing between the views.

    ","parent_name":"CellLayoutContainerView"},"Classes/CellLayoutContainerView.html#/s:10ChatLayout04CellB13ContainerViewC20customLeadingSpacing12CoreGraphics7CGFloatVvp":{"name":"customLeadingSpacing","abstract":"

    Custom spacing between the leading and main views.

    ","parent_name":"CellLayoutContainerView"},"Classes/CellLayoutContainerView.html#/s:10ChatLayout04CellB13ContainerViewC21customTrailingSpacing12CoreGraphics7CGFloatVvp":{"name":"customTrailingSpacing","abstract":"

    Custom spacing between the main and trailing views.

    ","parent_name":"CellLayoutContainerView"},"Classes/CellLayoutContainerView.html#/s:10ChatLayout04CellB13ContainerViewC5frameACyxq_q0_GSo6CGRectV_tcfc":{"name":"init(frame:)","abstract":"

    Initializes and returns a newly allocated view object with the specified frame rectangle.

    ","parent_name":"CellLayoutContainerView"},"Classes/CellLayoutContainerView.html#/s:10ChatLayout04CellB13ContainerViewC5coderACyxq_q0_GSgSo7NSCoderC_tcfc":{"name":"init(coder:)","abstract":"

    Returns an object initialized from data in a given unarchiver.

    ","parent_name":"CellLayoutContainerView"},"Classes/MessageContainerView.html#/s:10ChatLayout20MessageContainerViewC09accessoryE00E0QzSgvp":{"name":"accessoryView","abstract":"

    An accessory view.

    ","parent_name":"MessageContainerView"},"Classes/MessageContainerView.html#/s:10ChatLayout20MessageContainerViewC06customE0q_vp":{"name":"customView","abstract":"

    Main view.

    ","parent_name":"MessageContainerView"},"Classes/MessageContainerView.html#/s:10ChatLayout20MessageContainerViewC9alignmentAA0A13ItemAlignmentOvp":{"name":"alignment","abstract":"

    An alignment of the contained views within the MessageContainerView,

    ","parent_name":"MessageContainerView"},"Classes/MessageContainerView.html#/s:10ChatLayout20MessageContainerViewC5frameACyxq_GSo6CGRectV_tcfc":{"name":"init(frame:)","abstract":"

    Initializes and returns a newly allocated view object with the specified frame rectangle.

    ","parent_name":"MessageContainerView"},"Classes/MessageContainerView.html#/s:10ChatLayout20MessageContainerViewC5coderACyxq_GSgSo7NSCoderC_tcfc":{"name":"init(coder:)","abstract":"

    Returns an object initialized from data in a given unarchiver.

    ","parent_name":"MessageContainerView"},"Classes/ContainerCollectionReusableView.html#/s:10ChatLayout31ContainerCollectionReusableViewC15reuseIdentifierSSvpZ":{"name":"reuseIdentifier","abstract":"

    Default reuse identifier is set with the class name.

    ","parent_name":"ContainerCollectionReusableView"},"Classes/ContainerCollectionReusableView.html#/s:10ChatLayout31ContainerCollectionReusableViewC06customF0xvp":{"name":"customView","abstract":"

    Contained view.

    ","parent_name":"ContainerCollectionReusableView"},"Classes/ContainerCollectionReusableView.html#/s:10ChatLayout31ContainerCollectionReusableViewC8delegateAA0cdF12CellDelegate_pSgvp":{"name":"delegate","abstract":"

    An instance of ContainerCollectionViewCellDelegate

    ","parent_name":"ContainerCollectionReusableView"},"Classes/ContainerCollectionReusableView.html#/s:10ChatLayout31ContainerCollectionReusableViewC15prepareForReuseyyF":{"name":"prepareForReuse()","abstract":"

    Performs any clean up necessary to prepare the view for use again.

    ","parent_name":"ContainerCollectionReusableView"},"Classes/ContainerCollectionReusableView.html#/s:10ChatLayout31ContainerCollectionReusableViewC09preferredB17AttributesFittingySo012UICollectionfbH0CAFF":{"name":"preferredLayoutAttributesFitting(_:)","abstract":"

    Gives the cell a chance to modify the attributes provided by the layout object.

    ","parent_name":"ContainerCollectionReusableView"},"Classes/ContainerCollectionReusableView.html#/s:10ChatLayout31ContainerCollectionReusableViewC5applyyySo012UICollectionfB10AttributesCF":{"name":"apply(_:)","abstract":"

    Applies the specified layout attributes to the view.

    ","parent_name":"ContainerCollectionReusableView"},"Protocols/ContainerCollectionViewCellDelegate.html#/s:10ChatLayout35ContainerCollectionViewCellDelegateP15prepareForReuseyyF":{"name":"prepareForReuse()","abstract":"

    Perform any clean up necessary to prepare the view for use again.

    ","parent_name":"ContainerCollectionViewCellDelegate"},"Protocols/ContainerCollectionViewCellDelegate.html#/s:10ChatLayout35ContainerCollectionViewCellDelegateP09preferredB17AttributesFittingyAA0abI0CSgAFF":{"name":"preferredLayoutAttributesFitting(_:)","abstract":"

    Allows to override the call of ContainerCollectionViewCell/ContainerCollectionReusableView","parent_name":"ContainerCollectionViewCellDelegate"},"Protocols/ContainerCollectionViewCellDelegate.html#/s:10ChatLayout35ContainerCollectionViewCellDelegateP015modifyPreferredB17AttributesFittingyyAA0abJ0CF":{"name":"modifyPreferredLayoutAttributesFitting(_:)","abstract":"

    Allows to additionally modify ChatLayoutAttributes after the UICollectionReusableView.preferredLayoutAttributesFitting(...)","parent_name":"ContainerCollectionViewCellDelegate"},"Protocols/ContainerCollectionViewCellDelegate.html#/s:10ChatLayout35ContainerCollectionViewCellDelegateP5applyyyAA0aB10AttributesCF":{"name":"apply(_:)","abstract":"

    Apply the specified layout attributes to the view.","parent_name":"ContainerCollectionViewCellDelegate"},"Classes/ContainerCollectionViewCell.html#/s:10ChatLayout27ContainerCollectionViewCellC15reuseIdentifierSSvpZ":{"name":"reuseIdentifier","abstract":"

    Default reuse identifier is set with the class name.

    ","parent_name":"ContainerCollectionViewCell"},"Classes/ContainerCollectionViewCell.html#/s:10ChatLayout27ContainerCollectionViewCellC06customE0xvp":{"name":"customView","abstract":"

    Contained view.

    ","parent_name":"ContainerCollectionViewCell"},"Classes/ContainerCollectionViewCell.html#/s:10ChatLayout27ContainerCollectionViewCellC8delegateAA0cdeF8Delegate_pSgvp":{"name":"delegate","abstract":"

    An instance of ContainerCollectionViewCellDelegate

    ","parent_name":"ContainerCollectionViewCell"},"Classes/ContainerCollectionViewCell.html#/s:10ChatLayout27ContainerCollectionViewCellC15prepareForReuseyyF":{"name":"prepareForReuse()","abstract":"

    Performs any clean up necessary to prepare the view for use again.

    ","parent_name":"ContainerCollectionViewCell"},"Classes/ContainerCollectionViewCell.html#/s:10ChatLayout27ContainerCollectionViewCellC09preferredB17AttributesFittingySo012UICollectionebH0CAFF":{"name":"preferredLayoutAttributesFitting(_:)","abstract":"

    Gives the cell a chance to modify the attributes provided by the layout object.

    ","parent_name":"ContainerCollectionViewCell"},"Classes/ContainerCollectionViewCell.html#/s:10ChatLayout27ContainerCollectionViewCellC5applyyySo012UICollectioneB10AttributesCF":{"name":"apply(_:)","abstract":"

    Applies the specified layout attributes to the view.

    ","parent_name":"ContainerCollectionViewCell"},"Classes/ContainerCollectionViewCell.html":{"name":"ContainerCollectionViewCell","abstract":"

    A container UICollectionViewCell that constraints its contained view to its margins.

    "},"Protocols/ContainerCollectionViewCellDelegate.html":{"name":"ContainerCollectionViewCellDelegate","abstract":"

    A delegate of ContainerCollectionViewCell/ContainerCollectionReusableView should implement this methods if"},"Classes/ContainerCollectionReusableView.html":{"name":"ContainerCollectionReusableView","abstract":"

    A container UICollectionReusableView that constraints its contained view to its margins.

    "},"Classes/MessageContainerView.html":{"name":"MessageContainerView","abstract":"

    A container view that helps to layout the message view and its accessory

    "},"Classes/CellLayoutContainerView.html":{"name":"CellLayoutContainerView","abstract":"

    CellLayoutContainerView is a container view that helps to arrange the views in a horizontal cell-alike layout with an optional LeadingAccessory first,"},"Enums/CellLayoutContainerViewAlignment.html":{"name":"CellLayoutContainerViewAlignment","abstract":"

    Alignment for CellLayoutContainerView that corresponds to UIStackView.Alignment

    "},"Classes/EdgeAligningView.html":{"name":"EdgeAligningView","abstract":"

    Container view that allows its CustomView to have lose connection to the margins of the container according to the"},"Classes/ImageMaskedView.html":{"name":"ImageMaskedView","abstract":"

    A container view that masks its contained view with an image provided.

    "},"Enums/ImageMaskedViewTransformation.html":{"name":"ImageMaskedViewTransformation","abstract":"

    A transformation to apply to the ImageMaskedView.maskingImage

    "},"Classes/RoundedCornersContainerView.html":{"name":"RoundedCornersContainerView","abstract":"

    A container view that keeps its CustomView masked with the corner radius provided.

    "},"Protocols/StaticViewFactory.html":{"name":"StaticViewFactory","abstract":"

    A factory that creates optional contained UIViews should conform to this protocol.

    "},"Structs/VoidViewFactory.html":{"name":"VoidViewFactory","abstract":"

    Use this factory to specify that this view should not be build and should be equal to nil within the container.

    "},"Enums/ChatItemAlignment.html#/s:10ChatLayout0A13ItemAlignmentO7leadingyA2CmF":{"name":"leading","abstract":"

    Should be aligned at the leading edge of the layout. That includes all the additional content offsets.

    ","parent_name":"ChatItemAlignment"},"Enums/ChatItemAlignment.html#/s:10ChatLayout0A13ItemAlignmentO6centeryA2CmF":{"name":"center","abstract":"

    Should be aligned at the center of the layout.

    ","parent_name":"ChatItemAlignment"},"Enums/ChatItemAlignment.html#/s:10ChatLayout0A13ItemAlignmentO8trailingyA2CmF":{"name":"trailing","abstract":"

    Should be aligned at the trailing edge of the layout.

    ","parent_name":"ChatItemAlignment"},"Enums/ChatItemAlignment.html#/s:10ChatLayout0A13ItemAlignmentO9fullWidthyA2CmF":{"name":"fullWidth","abstract":"

    Should be aligned using the full width of the available content width.

    ","parent_name":"ChatItemAlignment"},"Enums/ItemSize.html#/s:10ChatLayout8ItemSizeO4autoyA2CmF":{"name":"auto","abstract":"

    Item size should be fully calculated by the ChatLayout. Initial estimated size will be taken from ChatLayoutSettings.

    ","parent_name":"ItemSize"},"Enums/ItemSize.html#/s:10ChatLayout8ItemSizeO9estimatedyACSo6CGSizeVcACmF":{"name":"estimated(_:)","abstract":"

    Item size should be fully calculated by the ChatLayout. Initial estimated size should be taken from the value provided.

    ","parent_name":"ItemSize"},"Enums/ItemSize.html#/s:10ChatLayout8ItemSizeO5exactyACSo6CGSizeVcACmF":{"name":"exact(_:)","abstract":"

    Item size should be exactly equal to the value provided.

    ","parent_name":"ItemSize"},"Enums/ItemKind.html#/s:10ChatLayout8ItemKindO6headeryA2CmF":{"name":"header","abstract":"

    Header item

    ","parent_name":"ItemKind"},"Enums/ItemKind.html#/s:10ChatLayout8ItemKindO4cellyA2CmF":{"name":"cell","abstract":"

    Cell item

    ","parent_name":"ItemKind"},"Enums/ItemKind.html#/s:10ChatLayout8ItemKindO6footeryA2CmF":{"name":"footer","abstract":"

    Footer item

    ","parent_name":"ItemKind"},"Enums/ItemKind.html#/s:10ChatLayout8ItemKindO015isSupplementaryC0Sbvp":{"name":"isSupplementaryItem","abstract":"

    Returns: true if this ItemKind is equal to ItemKind.header or ItemKind.footer

    ","parent_name":"ItemKind"},"Classes/ChatLayoutInvalidationContext.html#/s:10ChatLayout0aB19InvalidationContextC010invalidateB7MetricsSbvp":{"name":"invalidateLayoutMetrics","abstract":"

    Indicates whether to recompute the positions and sizes of the items based on the current","parent_name":"ChatLayoutInvalidationContext"},"Structs/ChatLayoutPositionSnapshot/Edge.html#/s:10ChatLayout0aB16PositionSnapshotV4EdgeO3topyA2EmF":{"name":"top","abstract":"

    Top edge of the UICollectionView

    ","parent_name":"Edge"},"Structs/ChatLayoutPositionSnapshot/Edge.html#/s:10ChatLayout0aB16PositionSnapshotV4EdgeO6bottomyA2EmF":{"name":"bottom","abstract":"

    Bottom edge of the UICollectionView

    ","parent_name":"Edge"},"Structs/ChatLayoutPositionSnapshot/Edge.html":{"name":"Edge","abstract":"

    Represents the edge.

    ","parent_name":"ChatLayoutPositionSnapshot"},"Structs/ChatLayoutPositionSnapshot.html#/s:10ChatLayout0aB16PositionSnapshotV9indexPath10Foundation05IndexF0Vvp":{"name":"indexPath","abstract":"

    Item’s IndexPath

    ","parent_name":"ChatLayoutPositionSnapshot"},"Structs/ChatLayoutPositionSnapshot.html#/s:10ChatLayout0aB16PositionSnapshotV4kindAA8ItemKindOvp":{"name":"kind","abstract":"

    Kind of item at the indexPath

    ","parent_name":"ChatLayoutPositionSnapshot"},"Structs/ChatLayoutPositionSnapshot.html#/s:10ChatLayout0aB16PositionSnapshotV4edgeAC4EdgeOvp":{"name":"edge","abstract":"

    The edge of the offset.

    ","parent_name":"ChatLayoutPositionSnapshot"},"Structs/ChatLayoutPositionSnapshot.html#/s:10ChatLayout0aB16PositionSnapshotV6offset12CoreGraphics7CGFloatVvp":{"name":"offset","abstract":"

    The offset from the edge.

    ","parent_name":"ChatLayoutPositionSnapshot"},"Structs/ChatLayoutPositionSnapshot.html#/s:10ChatLayout0aB16PositionSnapshotV9indexPath4kind4edge6offsetAC10Foundation05IndexF0V_AA8ItemKindOAC4EdgeO12CoreGraphics7CGFloatVtcfc":{"name":"init(indexPath:kind:edge:offset:)","abstract":"

    Constructor

    ","parent_name":"ChatLayoutPositionSnapshot"},"Structs/ChatLayoutSettings.html#/s:10ChatLayout0aB8SettingsV17estimatedItemSizeSo6CGSizeVSgvp":{"name":"estimatedItemSize","abstract":"

    Estimated item size for ChatLayout. This value will be used as the initial size of the item and the final size","parent_name":"ChatLayoutSettings"},"Structs/ChatLayoutSettings.html#/s:10ChatLayout0aB8SettingsV16interItemSpacing12CoreGraphics7CGFloatVvp":{"name":"interItemSpacing","abstract":"

    Spacing between the items in the section.

    ","parent_name":"ChatLayoutSettings"},"Structs/ChatLayoutSettings.html#/s:10ChatLayout0aB8SettingsV19interSectionSpacing12CoreGraphics7CGFloatVvp":{"name":"interSectionSpacing","abstract":"

    Spacing between the sections.

    ","parent_name":"ChatLayoutSettings"},"Structs/ChatLayoutSettings.html#/s:10ChatLayout0aB8SettingsV16additionalInsetsSo06UIEdgeE0Vvp":{"name":"additionalInsets","abstract":"

    Additional insets for the ChatLayout content.

    ","parent_name":"ChatLayoutSettings"},"Classes/ChatLayoutAttributes.html#/s:10ChatLayout0aB10AttributesC9alignmentAA0A13ItemAlignmentOvp":{"name":"alignment","abstract":"

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

    ","parent_name":"ChatLayoutAttributes"},"Classes/ChatLayoutAttributes.html#/s:10ChatLayout0aB10AttributesC16additionalInsetsSo06UIEdgeE0Vvp":{"name":"additionalInsets","abstract":"

    ChatLayouts additional insets setup using ChatLayoutSettings. Added for convenience.

    ","parent_name":"ChatLayoutAttributes"},"Classes/ChatLayoutAttributes.html#/s:10ChatLayout0aB10AttributesC8viewSizeSo6CGSizeVvp":{"name":"viewSize","abstract":"

    UICollectionViews frame size. Added for convenience.

    ","parent_name":"ChatLayoutAttributes"},"Classes/ChatLayoutAttributes.html#/s:10ChatLayout0aB10AttributesC21adjustedContentInsetsSo06UIEdgeF0Vvp":{"name":"adjustedContentInsets","abstract":"

    UICollectionViews adjusted content insets. Added for convenience.

    ","parent_name":"ChatLayoutAttributes"},"Classes/ChatLayoutAttributes.html#/s:10ChatLayout0aB10AttributesC17visibleBoundsSizeSo6CGSizeVvp":{"name":"visibleBoundsSize","abstract":"

    ChatLayouts visible bounds size excluding adjustedContentInsets. Added for convenience.

    ","parent_name":"ChatLayoutAttributes"},"Classes/ChatLayoutAttributes.html#/s:10ChatLayout0aB10AttributesC11layoutFrameSo6CGRectVvp":{"name":"layoutFrame","abstract":"

    ChatLayouts visible bounds size excluding adjustedContentInsets and additionalInsets. Added for convenience.

    ","parent_name":"ChatLayoutAttributes"},"Classes/ChatLayoutAttributes.html#/c:@M@ChatLayout@objc(cs)ChatLayoutAttributes(im)copyWithZone:":{"name":"copy(with:)","abstract":"

    Returns an exact copy of ChatLayoutAttributes.

    ","parent_name":"ChatLayoutAttributes"},"Classes/ChatLayoutAttributes.html#/c:@M@ChatLayout@objc(cs)ChatLayoutAttributes(im)isEqual:":{"name":"isEqual(_:)","abstract":"

    Returns a Boolean value indicating whether two ChatLayoutAttributes are considered equal.

    ","parent_name":"ChatLayoutAttributes"},"Classes/ChatLayoutAttributes.html#/s:10ChatLayout0aB10AttributesC4kindAA8ItemKindOvp":{"name":"kind","abstract":"

    ItemKind represented by this attributes object.

    ","parent_name":"ChatLayoutAttributes"},"Protocols/ChatLayoutDelegate.html#/s:10ChatLayout0aB8DelegateP19shouldPresentHeader_2atSbA2AC_SitF":{"name":"shouldPresentHeader(_:at:)","abstract":"

    ChatLayout will call this method to ask if it should present the header in the current layout.

    ","parent_name":"ChatLayoutDelegate"},"Protocols/ChatLayoutDelegate.html#/s:10ChatLayout0aB8DelegateP19shouldPresentFooter_2atSbA2AC_SitF":{"name":"shouldPresentFooter(_:at:)","abstract":"

    ChatLayout will call this method to ask if it should present the footer in the current layout.

    ","parent_name":"ChatLayoutDelegate"},"Protocols/ChatLayoutDelegate.html#/s:10ChatLayout0aB8DelegateP11sizeForItem_2of2atAA0F4SizeOA2AC_AA0F4KindO10Foundation9IndexPathVtF":{"name":"sizeForItem(_:of:at:)","abstract":"

    ChatLayout will call this method to ask what size the item should have.

    ","parent_name":"ChatLayoutDelegate"},"Protocols/ChatLayoutDelegate.html#/s:10ChatLayout0aB8DelegateP16alignmentForItem_2of2atAA0aF9AlignmentOA2AC_AA0F4KindO10Foundation9IndexPathVtF":{"name":"alignmentForItem(_:of:at:)","abstract":"

    ChatLayout will call this method to ask what type of alignment the item should have.

    ","parent_name":"ChatLayoutDelegate"},"Protocols/ChatLayoutDelegate.html#/s:10ChatLayout0aB8DelegateP07initialB25AttributesForInsertedItem_2of2at9modifying2onyA2AC_AA0H4KindO10Foundation9IndexPathVAA0abE0CAA07InitialE11RequestTypeOtF":{"name":"initialLayoutAttributesForInsertedItem(_:of:at:modifying:on:)","abstract":"

    Asks the delegate to modify a layout attributes instance so that it represents the initial visual state of an item","parent_name":"ChatLayoutDelegate"},"Protocols/ChatLayoutDelegate.html#/s:10ChatLayout0aB8DelegateP05finalB24AttributesForDeletedItem_2of2at9modifyingyA2AC_AA0H4KindO10Foundation9IndexPathVAA0abE0CtF":{"name":"finalLayoutAttributesForDeletedItem(_:of:at:modifying:)","abstract":"

    Asks the delegate to modify a layout attributes instance so that it represents the final visual state of an item","parent_name":"ChatLayoutDelegate"},"Classes/ChatLayout.html#/s:10ChatLayoutAAC8delegateAA0aB8Delegate_pSgvp":{"name":"delegate","abstract":"

    ChatLayout delegate.

    ","parent_name":"ChatLayout"},"Classes/ChatLayout.html#/s:10ChatLayoutAAC8settingsAA0aB8SettingsVvp":{"name":"settings","abstract":"

    Additional settings for ChatLayout.

    ","parent_name":"ChatLayout"},"Classes/ChatLayout.html#/s:10ChatLayoutAAC39keepContentOffsetAtBottomOnBatchUpdatesSbvp":{"name":"keepContentOffsetAtBottomOnBatchUpdates","abstract":"

    Default UIScrollView behaviour is to keep content offset constant from the top edge. If this flag is set to true","parent_name":"ChatLayout"},"Classes/ChatLayout.html#/s:10ChatLayoutAAC13visibleBoundsSo6CGRectVvp":{"name":"visibleBounds","abstract":"

    Represent the currently visible rectangle.

    ","parent_name":"ChatLayout"},"Classes/ChatLayout.html#/s:10ChatLayoutAAC11layoutFrameSo6CGRectVvp":{"name":"layoutFrame","abstract":"

    Represent the rectangle where all the items are aligned.

    ","parent_name":"ChatLayout"},"Classes/ChatLayout.html#/c:@M@ChatLayout@objc(cs)ChatLayout(py)developmentLayoutDirection":{"name":"developmentLayoutDirection","abstract":"

    The direction of the language you used when designing ChatLayout layout.

    ","parent_name":"ChatLayout"},"Classes/ChatLayout.html#/c:@M@ChatLayout@objc(cs)ChatLayout(py)flipsHorizontallyInOppositeLayoutDirection":{"name":"flipsHorizontallyInOppositeLayoutDirection","abstract":"

    A Boolean value that indicates whether the horizontal coordinate system is automatically flipped at appropriate times.

    ","parent_name":"ChatLayout"},"Classes/ChatLayout.html#/c:@M@ChatLayout@objc(cs)ChatLayout(cpy)layoutAttributesClass":{"name":"layoutAttributesClass","abstract":"

    Custom layoutAttributesClass is ChatLayoutAttributes.

    ","parent_name":"ChatLayout"},"Classes/ChatLayout.html#/c:@M@ChatLayout@objc(cs)ChatLayout(cpy)invalidationContextClass":{"name":"invalidationContextClass","abstract":"

    Custom invalidationContextClass is ChatLayoutInvalidationContext.

    ","parent_name":"ChatLayout"},"Classes/ChatLayout.html#/c:@M@ChatLayout@objc(cs)ChatLayout(py)collectionViewContentSize":{"name":"collectionViewContentSize","abstract":"

    The width and height of the collection view’s contents.

    ","parent_name":"ChatLayout"},"Classes/ChatLayout.html#/s:10ChatLayoutAAC027flipsHorizontallyInOppositeB9DirectionABSb_tcfc":{"name":"init(flipsHorizontallyInOppositeLayoutDirection:)","abstract":"

    Default constructor.

    ","parent_name":"ChatLayout"},"Classes/ChatLayout.html#/c:@M@ChatLayout@objc(cs)ChatLayout(im)initWithCoder:":{"name":"init(coder:)","abstract":"

    Returns an object initialized from data in a given unarchiver.

    ","parent_name":"ChatLayout"},"Classes/ChatLayout.html#/s:10ChatLayoutAAC24getContentOffsetSnapshot4fromAA0ab8PositionF0VSgAF4EdgeO_tF":{"name":"getContentOffsetSnapshot(from:)","abstract":"

    Get current offset of the item closest to the provided edge.

    ","parent_name":"ChatLayout"},"Classes/ChatLayout.html#/s:10ChatLayoutAAC20restoreContentOffset4withyAA0aB16PositionSnapshotV_tF":{"name":"restoreContentOffset(with:)","abstract":"

    Invalidates layout of the UICollectionView and trying to keep the offset of the item provided in ChatLayoutPositionSnapshot

    ","parent_name":"ChatLayout"},"Classes/ChatLayout.html#/c:@M@ChatLayout@objc(cs)ChatLayout(im)prepareLayout":{"name":"prepare()","abstract":"

    Tells the layout object to update the current layout.

    ","parent_name":"ChatLayout"},"Classes/ChatLayout.html#/c:@M@ChatLayout@objc(cs)ChatLayout(im)layoutAttributesForElementsInRect:":{"name":"layoutAttributesForElements(in:)","abstract":"

    Retrieves the layout attributes for all of the cells and views in the specified rectangle.

    ","parent_name":"ChatLayout"},"Classes/ChatLayout.html#/c:@M@ChatLayout@objc(cs)ChatLayout(im)layoutAttributesForItemAtIndexPath:":{"name":"layoutAttributesForItem(at:)","abstract":"

    Retrieves layout information for an item at the specified index path with a corresponding cell.

    ","parent_name":"ChatLayout"},"Classes/ChatLayout.html#/c:@M@ChatLayout@objc(cs)ChatLayout(im)layoutAttributesForSupplementaryViewOfKind:atIndexPath:":{"name":"layoutAttributesForSupplementaryView(ofKind:at:)","abstract":"

    Retrieves the layout attributes for the specified supplementary view.

    ","parent_name":"ChatLayout"},"Classes/ChatLayout.html#/c:@M@ChatLayout@objc(cs)ChatLayout(im)prepareForAnimatedBoundsChange:":{"name":"prepare(forAnimatedBoundsChange:)","abstract":"

    Prepares the layout object for animated changes to the view’s bounds or the insertion or deletion of items.

    ","parent_name":"ChatLayout"},"Classes/ChatLayout.html#/c:@M@ChatLayout@objc(cs)ChatLayout(im)finalizeAnimatedBoundsChange":{"name":"finalizeAnimatedBoundsChange()","abstract":"

    Cleans up after any animated changes to the view’s bounds or after the insertion or deletion of items.

    ","parent_name":"ChatLayout"},"Classes/ChatLayout.html#/c:@M@ChatLayout@objc(cs)ChatLayout(im)shouldInvalidateLayoutForPreferredLayoutAttributes:withOriginalAttributes:":{"name":"shouldInvalidateLayout(forPreferredLayoutAttributes:withOriginalAttributes:)","abstract":"

    Asks the layout object if changes to a self-sizing cell require a layout update.

    ","parent_name":"ChatLayout"},"Classes/ChatLayout.html#/c:@M@ChatLayout@objc(cs)ChatLayout(im)invalidationContextForPreferredLayoutAttributes:withOriginalAttributes:":{"name":"invalidationContext(forPreferredLayoutAttributes:withOriginalAttributes:)","abstract":"

    Retrieves a context object that identifies the portions of the layout that should change in response to dynamic cell changes.

    ","parent_name":"ChatLayout"},"Classes/ChatLayout.html#/c:@M@ChatLayout@objc(cs)ChatLayout(im)shouldInvalidateLayoutForBoundsChange:":{"name":"shouldInvalidateLayout(forBoundsChange:)","abstract":"

    Asks the layout object if the new bounds require a layout update.

    ","parent_name":"ChatLayout"},"Classes/ChatLayout.html#/c:@M@ChatLayout@objc(cs)ChatLayout(im)invalidationContextForBoundsChange:":{"name":"invalidationContext(forBoundsChange:)","abstract":"

    Retrieves a context object that defines the portions of the layout that should change when a bounds change occurs.

    ","parent_name":"ChatLayout"},"Classes/ChatLayout.html#/c:@M@ChatLayout@objc(cs)ChatLayout(im)invalidateLayoutWithContext:":{"name":"invalidateLayout(with:)","abstract":"

    Invalidates the current layout using the information in the provided context object.

    ","parent_name":"ChatLayout"},"Classes/ChatLayout.html#/c:@M@ChatLayout@objc(cs)ChatLayout(im)invalidateLayout":{"name":"invalidateLayout()","abstract":"

    Invalidates the current layout and triggers a layout update.

    ","parent_name":"ChatLayout"},"Classes/ChatLayout.html#/c:@M@ChatLayout@objc(cs)ChatLayout(im)targetContentOffsetForProposedContentOffset:":{"name":"targetContentOffset(forProposedContentOffset:)","abstract":"

    Retrieves the content offset to use after an animated layout update or change.

    ","parent_name":"ChatLayout"},"Classes/ChatLayout.html#/c:@M@ChatLayout@objc(cs)ChatLayout(im)prepareForCollectionViewUpdates:":{"name":"prepare(forCollectionViewUpdates:)","abstract":"

    Notifies the layout object that the contents of the collection view are about to change.

    ","parent_name":"ChatLayout"},"Classes/ChatLayout.html#/c:@M@ChatLayout@objc(cs)ChatLayout(im)finalizeCollectionViewUpdates":{"name":"finalizeCollectionViewUpdates()","abstract":"

    Performs any additional animations or clean up needed during a collection view update.

    ","parent_name":"ChatLayout"},"Classes/ChatLayout.html#/c:@M@ChatLayout@objc(cs)ChatLayout(im)initialLayoutAttributesForAppearingItemAtIndexPath:":{"name":"initialLayoutAttributesForAppearingItem(at:)","abstract":"

    Retrieves the starting layout information for an item being inserted into the collection view.

    ","parent_name":"ChatLayout"},"Classes/ChatLayout.html#/c:@M@ChatLayout@objc(cs)ChatLayout(im)finalLayoutAttributesForDisappearingItemAtIndexPath:":{"name":"finalLayoutAttributesForDisappearingItem(at:)","abstract":"

    Retrieves the final layout information for an item that is about to be removed from the collection view.

    ","parent_name":"ChatLayout"},"Classes/ChatLayout.html#/c:@M@ChatLayout@objc(cs)ChatLayout(im)initialLayoutAttributesForAppearingSupplementaryElementOfKind:atIndexPath:":{"name":"initialLayoutAttributesForAppearingSupplementaryElement(ofKind:at:)","abstract":"

    Retrieves the starting layout information for a supplementary view being inserted into the collection view.

    ","parent_name":"ChatLayout"},"Classes/ChatLayout.html#/c:@M@ChatLayout@objc(cs)ChatLayout(im)finalLayoutAttributesForDisappearingSupplementaryElementOfKind:atIndexPath:":{"name":"finalLayoutAttributesForDisappearingSupplementaryElement(ofKind:at:)","abstract":"

    Retrieves the final layout information for a supplementary view that is about to be removed from the collection view.

    ","parent_name":"ChatLayout"},"Classes/ChatLayout.html":{"name":"ChatLayout","abstract":"

    A collection view layout that can display items in a grid similar to UITableView but aligning them"},"Protocols/ChatLayoutDelegate.html":{"name":"ChatLayoutDelegate","abstract":"

    ChatLayout delegate

    "},"Classes/ChatLayoutAttributes.html":{"name":"ChatLayoutAttributes","abstract":"

    Custom implementation of UICollectionViewLayoutAttributes

    "},"Structs/ChatLayoutSettings.html":{"name":"ChatLayoutSettings","abstract":"

    ChatLayout settings.

    "},"Structs/ChatLayoutPositionSnapshot.html":{"name":"ChatLayoutPositionSnapshot","abstract":"

    Represents content offset position expressed by the specific item and it offset from the top or bottom edge.

    "},"Classes/ChatLayoutInvalidationContext.html":{"name":"ChatLayoutInvalidationContext","abstract":"

    Custom implementation of UICollectionViewLayoutInvalidationContext

    "},"Enums/ItemKind.html":{"name":"ItemKind","abstract":"

    Type of the item supported by ChatLayout

    "},"Enums/ItemSize.html":{"name":"ItemSize","abstract":"

    Represents desired item size.

    "},"Enums/ChatItemAlignment.html":{"name":"ChatItemAlignment","abstract":"

    Represent item alignment in collection view layout

    "},"Core.html":{"name":"Core"},"Extras.html":{"name":"Extras"},"Other%20Guides.html":{"name":"Other Guides","abstract":"

    The following guides are available globally.

    "},"Other%20Enums.html":{"name":"Other Enumerations","abstract":"

    The following enumerations are available globally.

    "}} \ No newline at end of file +{"Enums/InitialAttributesRequestType.html#/s:10ChatLayout28InitialAttributesRequestTypeO7initialyA2CmF":{"name":"initial","abstract":"

    UICollectionView initially asks about the layout of an item.

    ","parent_name":"InitialAttributesRequestType"},"Enums/InitialAttributesRequestType.html#/s:10ChatLayout28InitialAttributesRequestTypeO12invalidationyA2CmF":{"name":"invalidation","abstract":"

    An item is being invalidated.

    ","parent_name":"InitialAttributesRequestType"},"Enums/InitialAttributesRequestType.html":{"name":"InitialAttributesRequestType","abstract":"

    Represents the point in time ChatLayout when chat layout asks about layout attributes modification.

    "},"readme.html":{"name":"README"},"Structs/VoidViewFactory.html#/s:10ChatLayout15VoidViewFactoryV0cD0C":{"name":"VoidView","abstract":"

    Nil view placeholder type.

    ","parent_name":"VoidViewFactory"},"Structs/VoidViewFactory.html#/s:10ChatLayout17StaticViewFactoryP05buildD06within0D0QzSgSo6CGRectV_tFZ":{"name":"buildView(within:)","parent_name":"VoidViewFactory"},"Protocols/StaticViewFactory.html#/s:10ChatLayout17StaticViewFactoryP0D0Qa":{"name":"View","abstract":"

    A type of the view to build.

    ","parent_name":"StaticViewFactory"},"Protocols/StaticViewFactory.html#/s:10ChatLayout17StaticViewFactoryP05buildD06within0D0QzSgSo6CGRectV_tFZ":{"name":"buildView(within:)","abstract":"

    Factory method that will be called by the corresponding container UIView

    ","parent_name":"StaticViewFactory"},"Classes/RoundedCornersContainerView.html#/s:10ChatLayout27RoundedCornersContainerViewC12cornerRadius12CoreGraphics7CGFloatVSgvp":{"name":"cornerRadius","abstract":"

    Corner radius. If not provided then the half of the current view height will be used.

    ","parent_name":"RoundedCornersContainerView"},"Classes/RoundedCornersContainerView.html#/s:10ChatLayout27RoundedCornersContainerViewC06customF0xvp":{"name":"customView","abstract":"

    Contained view.

    ","parent_name":"RoundedCornersContainerView"},"Classes/RoundedCornersContainerView.html#/s:10ChatLayout27RoundedCornersContainerViewC5frameACyxGSo6CGRectV_tcfc":{"name":"init(frame:)","abstract":"

    Initializes and returns a newly allocated view object with the specified frame rectangle.

    ","parent_name":"RoundedCornersContainerView"},"Classes/RoundedCornersContainerView.html#/s:10ChatLayout27RoundedCornersContainerViewC5coderACyxGSgSo7NSCoderC_tcfc":{"name":"init(coder:)","abstract":"

    Returns an object initialized from data in a given unarchiver.

    ","parent_name":"RoundedCornersContainerView"},"Classes/RoundedCornersContainerView.html#/s:10ChatLayout27RoundedCornersContainerViewC14layoutSubviewsyyF":{"name":"layoutSubviews()","abstract":"

    Lays out subviews.

    ","parent_name":"RoundedCornersContainerView"},"Enums/ImageMaskedViewTransformation.html#/s:10ChatLayout29ImageMaskedViewTransformationO4asIsyA2CmF":{"name":"asIs","abstract":"

    Keep image as it is.

    ","parent_name":"ImageMaskedViewTransformation"},"Enums/ImageMaskedViewTransformation.html#/s:10ChatLayout29ImageMaskedViewTransformationO17flippedVerticallyyA2CmF":{"name":"flippedVertically","abstract":"

    Flip image vertically.

    ","parent_name":"ImageMaskedViewTransformation"},"Classes/ImageMaskedView.html#/s:10ChatLayout15ImageMaskedViewC06customE0xvp":{"name":"customView","abstract":"

    Contained view.

    ","parent_name":"ImageMaskedView"},"Classes/ImageMaskedView.html#/s:10ChatLayout15ImageMaskedViewC07maskingC0So7UIImageCSgvp":{"name":"maskingImage","abstract":"

    An Image to be used as a mask for the customView.

    ","parent_name":"ImageMaskedView"},"Classes/ImageMaskedView.html#/s:10ChatLayout15ImageMaskedViewC18maskTransformationAA0cdeG0Ovp":{"name":"maskTransformation","abstract":"

    A transformation to apply to the maskingImage.

    ","parent_name":"ImageMaskedView"},"Classes/ImageMaskedView.html#/s:10ChatLayout15ImageMaskedViewC5frameACyxGSo6CGRectV_tcfc":{"name":"init(frame:)","abstract":"

    Initializes and returns a newly allocated view object with the specified frame rectangle.

    ","parent_name":"ImageMaskedView"},"Classes/ImageMaskedView.html#/s:10ChatLayout15ImageMaskedViewC5coderACyxGSgSo7NSCoderC_tcfc":{"name":"init(coder:)","abstract":"

    Returns an object initialized from data in a given unarchiver.

    ","parent_name":"ImageMaskedView"},"Classes/ImageMaskedView.html#/s:10ChatLayout15ImageMaskedViewC5frameSo6CGRectVvp":{"name":"frame","abstract":"

    The frame rectangle, which describes the view’s location and size in its superview’s coordinate system.

    ","parent_name":"ImageMaskedView"},"Classes/ImageMaskedView.html#/s:10ChatLayout15ImageMaskedViewC6boundsSo6CGRectVvp":{"name":"bounds","abstract":"

    The bounds rectangle, which describes the view’s location and size in its own coordinate system.

    ","parent_name":"ImageMaskedView"},"Classes/EdgeAligningView/Edge.html#/s:10ChatLayout16EdgeAligningViewC0C0O3topyAEyx_GAGmSo6UIViewCRbzlF":{"name":"top","abstract":"

    Top edge

    ","parent_name":"Edge"},"Classes/EdgeAligningView/Edge.html#/s:10ChatLayout16EdgeAligningViewC0C0O7leadingyAEyx_GAGmSo6UIViewCRbzlF":{"name":"leading","abstract":"

    Leading edge

    ","parent_name":"Edge"},"Classes/EdgeAligningView/Edge.html#/s:10ChatLayout16EdgeAligningViewC0C0O8trailingyAEyx_GAGmSo6UIViewCRbzlF":{"name":"trailing","abstract":"

    Trailing edge

    ","parent_name":"Edge"},"Classes/EdgeAligningView/Edge.html#/s:10ChatLayout16EdgeAligningViewC0C0O6bottomyAEyx_GAGmSo6UIViewCRbzlF":{"name":"bottom","abstract":"

    Bottom edge

    ","parent_name":"Edge"},"Classes/EdgeAligningView/Edge.html":{"name":"Edge","abstract":"

    Represents an edge of EdgeAligningView

    ","parent_name":"EdgeAligningView"},"Classes/EdgeAligningView.html#/s:10ChatLayout16EdgeAligningViewC13flexibleEdgesShyAC0C0Oyx_GGvp":{"name":"flexibleEdges","abstract":"

    Set of edge constraints to be set as loose.

    ","parent_name":"EdgeAligningView"},"Classes/EdgeAligningView.html#/s:10ChatLayout16EdgeAligningViewC06customE0xvp":{"name":"customView","abstract":"

    Contained view.

    ","parent_name":"EdgeAligningView"},"Classes/EdgeAligningView.html#/s:10ChatLayout16EdgeAligningViewC4with13flexibleEdgesACyxGx_ShyAC0C0Oyx_GGtcfc":{"name":"init(with:flexibleEdges:)","abstract":"

    Initializes and returns a newly allocated EdgeAligningView

    ","parent_name":"EdgeAligningView"},"Classes/EdgeAligningView.html#/s:10ChatLayout16EdgeAligningViewC5frameACyxGSo6CGRectV_tcfc":{"name":"init(frame:)","abstract":"

    Initializes and returns a newly allocated view object with the specified frame rectangle.

    ","parent_name":"EdgeAligningView"},"Enums/CellLayoutContainerViewAlignment.html#/s:10ChatLayout04CellB22ContainerViewAlignmentO4fillyA2CmF":{"name":"fill","abstract":"

    Align the top and bottom edges of horizontally stacked items tightly to the container.

    ","parent_name":"CellLayoutContainerViewAlignment"},"Enums/CellLayoutContainerViewAlignment.html#/s:10ChatLayout04CellB22ContainerViewAlignmentO3topyA2CmF":{"name":"top","abstract":"

    Align the top edges of horizontally stacked items tightly to the container.

    ","parent_name":"CellLayoutContainerViewAlignment"},"Enums/CellLayoutContainerViewAlignment.html#/s:10ChatLayout04CellB22ContainerViewAlignmentO6centeryA2CmF":{"name":"center","abstract":"

    Center items in a horizontal stack vertically.

    ","parent_name":"CellLayoutContainerViewAlignment"},"Enums/CellLayoutContainerViewAlignment.html#/s:10ChatLayout04CellB22ContainerViewAlignmentO6bottomyA2CmF":{"name":"bottom","abstract":"

    Align the bottom edges of horizontally stacked items tightly to the container.

    ","parent_name":"CellLayoutContainerViewAlignment"},"Classes/CellLayoutContainerView.html#/s:10ChatLayout04CellB13ContainerViewC07leadingE00E0QzSgvp":{"name":"leadingView","abstract":"

    Leading accessory view.

    ","parent_name":"CellLayoutContainerView"},"Classes/CellLayoutContainerView.html#/s:10ChatLayout04CellB13ContainerViewC06customE0q_vp":{"name":"customView","abstract":"

    Main view.

    ","parent_name":"CellLayoutContainerView"},"Classes/CellLayoutContainerView.html#/s:10ChatLayout04CellB13ContainerViewC08trailingE00E0Qy0_Sgvp":{"name":"trailingView","abstract":"

    Trailing accessory view.

    ","parent_name":"CellLayoutContainerView"},"Classes/CellLayoutContainerView.html#/s:10ChatLayout04CellB13ContainerViewC9alignmentAA0cbdE9AlignmentOvp":{"name":"alignment","abstract":"

    Alignment that corresponds to UIStackView.Alignment

    ","parent_name":"CellLayoutContainerView"},"Classes/CellLayoutContainerView.html#/s:10ChatLayout04CellB13ContainerViewC7spacing12CoreGraphics7CGFloatVvp":{"name":"spacing","abstract":"

    Default spacing between the views.

    ","parent_name":"CellLayoutContainerView"},"Classes/CellLayoutContainerView.html#/s:10ChatLayout04CellB13ContainerViewC20customLeadingSpacing12CoreGraphics7CGFloatVvp":{"name":"customLeadingSpacing","abstract":"

    Custom spacing between the leading and main views.

    ","parent_name":"CellLayoutContainerView"},"Classes/CellLayoutContainerView.html#/s:10ChatLayout04CellB13ContainerViewC21customTrailingSpacing12CoreGraphics7CGFloatVvp":{"name":"customTrailingSpacing","abstract":"

    Custom spacing between the main and trailing views.

    ","parent_name":"CellLayoutContainerView"},"Classes/CellLayoutContainerView.html#/s:10ChatLayout04CellB13ContainerViewC5frameACyxq_q0_GSo6CGRectV_tcfc":{"name":"init(frame:)","abstract":"

    Initializes and returns a newly allocated view object with the specified frame rectangle.

    ","parent_name":"CellLayoutContainerView"},"Classes/CellLayoutContainerView.html#/s:10ChatLayout04CellB13ContainerViewC5coderACyxq_q0_GSgSo7NSCoderC_tcfc":{"name":"init(coder:)","abstract":"

    Returns an object initialized from data in a given unarchiver.

    ","parent_name":"CellLayoutContainerView"},"Classes/MessageContainerView.html#/s:10ChatLayout20MessageContainerViewC09accessoryE00E0QzSgvp":{"name":"accessoryView","abstract":"

    An accessory view.

    ","parent_name":"MessageContainerView"},"Classes/MessageContainerView.html#/s:10ChatLayout20MessageContainerViewC06customE0q_vp":{"name":"customView","abstract":"

    Main view.

    ","parent_name":"MessageContainerView"},"Classes/MessageContainerView.html#/s:10ChatLayout20MessageContainerViewC9alignmentAA0A13ItemAlignmentOvp":{"name":"alignment","abstract":"

    An alignment of the contained views within the MessageContainerView,

    ","parent_name":"MessageContainerView"},"Classes/MessageContainerView.html#/s:10ChatLayout20MessageContainerViewC5frameACyxq_GSo6CGRectV_tcfc":{"name":"init(frame:)","abstract":"

    Initializes and returns a newly allocated view object with the specified frame rectangle.

    ","parent_name":"MessageContainerView"},"Classes/MessageContainerView.html#/s:10ChatLayout20MessageContainerViewC5coderACyxq_GSgSo7NSCoderC_tcfc":{"name":"init(coder:)","abstract":"

    Returns an object initialized from data in a given unarchiver.

    ","parent_name":"MessageContainerView"},"Classes/ContainerCollectionReusableView.html#/s:10ChatLayout31ContainerCollectionReusableViewC15reuseIdentifierSSvpZ":{"name":"reuseIdentifier","abstract":"

    Default reuse identifier is set with the class name.

    ","parent_name":"ContainerCollectionReusableView"},"Classes/ContainerCollectionReusableView.html#/s:10ChatLayout31ContainerCollectionReusableViewC06customF0xvp":{"name":"customView","abstract":"

    Contained view.

    ","parent_name":"ContainerCollectionReusableView"},"Classes/ContainerCollectionReusableView.html#/s:10ChatLayout31ContainerCollectionReusableViewC8delegateAA0cdF12CellDelegate_pSgvp":{"name":"delegate","abstract":"

    An instance of ContainerCollectionViewCellDelegate

    ","parent_name":"ContainerCollectionReusableView"},"Classes/ContainerCollectionReusableView.html#/s:10ChatLayout31ContainerCollectionReusableViewC15prepareForReuseyyF":{"name":"prepareForReuse()","abstract":"

    Performs any clean up necessary to prepare the view for use again.

    ","parent_name":"ContainerCollectionReusableView"},"Classes/ContainerCollectionReusableView.html#/s:10ChatLayout31ContainerCollectionReusableViewC09preferredB17AttributesFittingySo012UICollectionfbH0CAFF":{"name":"preferredLayoutAttributesFitting(_:)","abstract":"

    Gives the cell a chance to modify the attributes provided by the layout object.

    ","parent_name":"ContainerCollectionReusableView"},"Classes/ContainerCollectionReusableView.html#/s:10ChatLayout31ContainerCollectionReusableViewC5applyyySo012UICollectionfB10AttributesCF":{"name":"apply(_:)","abstract":"

    Applies the specified layout attributes to the view.

    ","parent_name":"ContainerCollectionReusableView"},"Protocols/ContainerCollectionViewCellDelegate.html#/s:10ChatLayout35ContainerCollectionViewCellDelegateP15prepareForReuseyyF":{"name":"prepareForReuse()","abstract":"

    Perform any clean up necessary to prepare the view for use again.

    ","parent_name":"ContainerCollectionViewCellDelegate"},"Protocols/ContainerCollectionViewCellDelegate.html#/s:10ChatLayout35ContainerCollectionViewCellDelegateP09preferredB17AttributesFittingyAA0abI0CSgAFF":{"name":"preferredLayoutAttributesFitting(_:)","abstract":"

    Allows to override the call of ContainerCollectionViewCell/ContainerCollectionReusableView","parent_name":"ContainerCollectionViewCellDelegate"},"Protocols/ContainerCollectionViewCellDelegate.html#/s:10ChatLayout35ContainerCollectionViewCellDelegateP015modifyPreferredB17AttributesFittingyyAA0abJ0CF":{"name":"modifyPreferredLayoutAttributesFitting(_:)","abstract":"

    Allows to additionally modify ChatLayoutAttributes after the UICollectionReusableView.preferredLayoutAttributesFitting(...)","parent_name":"ContainerCollectionViewCellDelegate"},"Protocols/ContainerCollectionViewCellDelegate.html#/s:10ChatLayout35ContainerCollectionViewCellDelegateP5applyyyAA0aB10AttributesCF":{"name":"apply(_:)","abstract":"

    Apply the specified layout attributes to the view.","parent_name":"ContainerCollectionViewCellDelegate"},"Classes/ContainerCollectionViewCell.html#/s:10ChatLayout27ContainerCollectionViewCellC15reuseIdentifierSSvpZ":{"name":"reuseIdentifier","abstract":"

    Default reuse identifier is set with the class name.

    ","parent_name":"ContainerCollectionViewCell"},"Classes/ContainerCollectionViewCell.html#/s:10ChatLayout27ContainerCollectionViewCellC06customE0xvp":{"name":"customView","abstract":"

    Contained view.

    ","parent_name":"ContainerCollectionViewCell"},"Classes/ContainerCollectionViewCell.html#/s:10ChatLayout27ContainerCollectionViewCellC8delegateAA0cdeF8Delegate_pSgvp":{"name":"delegate","abstract":"

    An instance of ContainerCollectionViewCellDelegate

    ","parent_name":"ContainerCollectionViewCell"},"Classes/ContainerCollectionViewCell.html#/s:10ChatLayout27ContainerCollectionViewCellC15prepareForReuseyyF":{"name":"prepareForReuse()","abstract":"

    Performs any clean up necessary to prepare the view for use again.

    ","parent_name":"ContainerCollectionViewCell"},"Classes/ContainerCollectionViewCell.html#/s:10ChatLayout27ContainerCollectionViewCellC09preferredB17AttributesFittingySo012UICollectionebH0CAFF":{"name":"preferredLayoutAttributesFitting(_:)","abstract":"

    Gives the cell a chance to modify the attributes provided by the layout object.

    ","parent_name":"ContainerCollectionViewCell"},"Classes/ContainerCollectionViewCell.html#/s:10ChatLayout27ContainerCollectionViewCellC5applyyySo012UICollectioneB10AttributesCF":{"name":"apply(_:)","abstract":"

    Applies the specified layout attributes to the view.

    ","parent_name":"ContainerCollectionViewCell"},"Classes/ContainerCollectionViewCell.html":{"name":"ContainerCollectionViewCell","abstract":"

    A container UICollectionViewCell that constraints its contained view to its margins.

    "},"Protocols/ContainerCollectionViewCellDelegate.html":{"name":"ContainerCollectionViewCellDelegate","abstract":"

    A delegate of ContainerCollectionViewCell/ContainerCollectionReusableView should implement this methods if"},"Classes/ContainerCollectionReusableView.html":{"name":"ContainerCollectionReusableView","abstract":"

    A container UICollectionReusableView that constraints its contained view to its margins.

    "},"Classes/MessageContainerView.html":{"name":"MessageContainerView","abstract":"

    A container view that helps to layout the message view and its accessory

    "},"Classes/CellLayoutContainerView.html":{"name":"CellLayoutContainerView","abstract":"

    CellLayoutContainerView is a container view that helps to arrange the views in a horizontal cell-alike layout with an optional LeadingAccessory first,"},"Enums/CellLayoutContainerViewAlignment.html":{"name":"CellLayoutContainerViewAlignment","abstract":"

    Alignment for CellLayoutContainerView that corresponds to UIStackView.Alignment

    "},"Classes/EdgeAligningView.html":{"name":"EdgeAligningView","abstract":"

    Container view that allows its CustomView to have lose connection to the margins of the container according to the"},"Classes/ImageMaskedView.html":{"name":"ImageMaskedView","abstract":"

    A container view that masks its contained view with an image provided.

    "},"Enums/ImageMaskedViewTransformation.html":{"name":"ImageMaskedViewTransformation","abstract":"

    A transformation to apply to the ImageMaskedView.maskingImage

    "},"Classes/RoundedCornersContainerView.html":{"name":"RoundedCornersContainerView","abstract":"

    A container view that keeps its CustomView masked with the corner radius provided.

    "},"Protocols/StaticViewFactory.html":{"name":"StaticViewFactory","abstract":"

    A factory that creates optional contained UIViews should conform to this protocol.

    "},"Structs/VoidViewFactory.html":{"name":"VoidViewFactory","abstract":"

    Use this factory to specify that this view should not be build and should be equal to nil within the container.

    "},"Enums/ChatItemAlignment.html#/s:10ChatLayout0A13ItemAlignmentO7leadingyA2CmF":{"name":"leading","abstract":"

    Should be aligned at the leading edge of the layout. That includes all the additional content offsets.

    ","parent_name":"ChatItemAlignment"},"Enums/ChatItemAlignment.html#/s:10ChatLayout0A13ItemAlignmentO6centeryA2CmF":{"name":"center","abstract":"

    Should be aligned at the center of the layout.

    ","parent_name":"ChatItemAlignment"},"Enums/ChatItemAlignment.html#/s:10ChatLayout0A13ItemAlignmentO8trailingyA2CmF":{"name":"trailing","abstract":"

    Should be aligned at the trailing edge of the layout.

    ","parent_name":"ChatItemAlignment"},"Enums/ChatItemAlignment.html#/s:10ChatLayout0A13ItemAlignmentO9fullWidthyA2CmF":{"name":"fullWidth","abstract":"

    Should be aligned using the full width of the available content width.

    ","parent_name":"ChatItemAlignment"},"Enums/ItemSize.html#/s:10ChatLayout8ItemSizeO4autoyA2CmF":{"name":"auto","abstract":"

    Item size should be fully calculated by the ChatLayout. Initial estimated size will be taken from ChatLayoutSettings.

    ","parent_name":"ItemSize"},"Enums/ItemSize.html#/s:10ChatLayout8ItemSizeO9estimatedyACSo6CGSizeVcACmF":{"name":"estimated(_:)","abstract":"

    Item size should be fully calculated by the ChatLayout. Initial estimated size should be taken from the value provided.

    ","parent_name":"ItemSize"},"Enums/ItemSize.html#/s:10ChatLayout8ItemSizeO5exactyACSo6CGSizeVcACmF":{"name":"exact(_:)","abstract":"

    Item size should be exactly equal to the value provided.

    ","parent_name":"ItemSize"},"Enums/ItemKind.html#/s:10ChatLayout8ItemKindO6headeryA2CmF":{"name":"header","abstract":"

    Header item

    ","parent_name":"ItemKind"},"Enums/ItemKind.html#/s:10ChatLayout8ItemKindO4cellyA2CmF":{"name":"cell","abstract":"

    Cell item

    ","parent_name":"ItemKind"},"Enums/ItemKind.html#/s:10ChatLayout8ItemKindO6footeryA2CmF":{"name":"footer","abstract":"

    Footer item

    ","parent_name":"ItemKind"},"Enums/ItemKind.html#/s:10ChatLayout8ItemKindO015isSupplementaryC0Sbvp":{"name":"isSupplementaryItem","abstract":"

    Returns: true if this ItemKind is equal to ItemKind.header or ItemKind.footer

    ","parent_name":"ItemKind"},"Classes/ChatLayoutInvalidationContext.html#/s:10ChatLayout0aB19InvalidationContextC010invalidateB7MetricsSbvp":{"name":"invalidateLayoutMetrics","abstract":"

    Indicates whether to recompute the positions and sizes of the items based on the current","parent_name":"ChatLayoutInvalidationContext"},"Structs/ChatLayoutPositionSnapshot/Edge.html#/s:10ChatLayout0aB16PositionSnapshotV4EdgeO3topyA2EmF":{"name":"top","abstract":"

    Top edge of the UICollectionView

    ","parent_name":"Edge"},"Structs/ChatLayoutPositionSnapshot/Edge.html#/s:10ChatLayout0aB16PositionSnapshotV4EdgeO6bottomyA2EmF":{"name":"bottom","abstract":"

    Bottom edge of the UICollectionView

    ","parent_name":"Edge"},"Structs/ChatLayoutPositionSnapshot/Edge.html":{"name":"Edge","abstract":"

    Represents the edge.

    ","parent_name":"ChatLayoutPositionSnapshot"},"Structs/ChatLayoutPositionSnapshot.html#/s:10ChatLayout0aB16PositionSnapshotV9indexPath10Foundation05IndexF0Vvp":{"name":"indexPath","abstract":"

    Item’s IndexPath

    ","parent_name":"ChatLayoutPositionSnapshot"},"Structs/ChatLayoutPositionSnapshot.html#/s:10ChatLayout0aB16PositionSnapshotV4kindAA8ItemKindOvp":{"name":"kind","abstract":"

    Kind of item at the indexPath

    ","parent_name":"ChatLayoutPositionSnapshot"},"Structs/ChatLayoutPositionSnapshot.html#/s:10ChatLayout0aB16PositionSnapshotV4edgeAC4EdgeOvp":{"name":"edge","abstract":"

    The edge of the offset.

    ","parent_name":"ChatLayoutPositionSnapshot"},"Structs/ChatLayoutPositionSnapshot.html#/s:10ChatLayout0aB16PositionSnapshotV6offset12CoreGraphics7CGFloatVvp":{"name":"offset","abstract":"

    The offset from the edge.

    ","parent_name":"ChatLayoutPositionSnapshot"},"Structs/ChatLayoutPositionSnapshot.html#/s:10ChatLayout0aB16PositionSnapshotV9indexPath4kind4edge6offsetAC10Foundation05IndexF0V_AA8ItemKindOAC4EdgeO12CoreGraphics7CGFloatVtcfc":{"name":"init(indexPath:kind:edge:offset:)","abstract":"

    Constructor

    ","parent_name":"ChatLayoutPositionSnapshot"},"Structs/ChatLayoutSettings.html#/s:10ChatLayout0aB8SettingsV17estimatedItemSizeSo6CGSizeVSgvp":{"name":"estimatedItemSize","abstract":"

    Estimated item size for ChatLayout. This value will be used as the initial size of the item and the final size","parent_name":"ChatLayoutSettings"},"Structs/ChatLayoutSettings.html#/s:10ChatLayout0aB8SettingsV16interItemSpacing12CoreGraphics7CGFloatVvp":{"name":"interItemSpacing","abstract":"

    Spacing between the items in the section.

    ","parent_name":"ChatLayoutSettings"},"Structs/ChatLayoutSettings.html#/s:10ChatLayout0aB8SettingsV19interSectionSpacing12CoreGraphics7CGFloatVvp":{"name":"interSectionSpacing","abstract":"

    Spacing between the sections.

    ","parent_name":"ChatLayoutSettings"},"Structs/ChatLayoutSettings.html#/s:10ChatLayout0aB8SettingsV16additionalInsetsSo06UIEdgeE0Vvp":{"name":"additionalInsets","abstract":"

    Additional insets for the ChatLayout content.

    ","parent_name":"ChatLayoutSettings"},"Classes/ChatLayoutAttributes.html#/s:10ChatLayout0aB10AttributesC9alignmentAA0A13ItemAlignmentOvp":{"name":"alignment","abstract":"

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

    ","parent_name":"ChatLayoutAttributes"},"Classes/ChatLayoutAttributes.html#/s:10ChatLayout0aB10AttributesC16additionalInsetsSo06UIEdgeE0Vvp":{"name":"additionalInsets","abstract":"

    ChatLayouts additional insets setup using ChatLayoutSettings. Added for convenience.

    ","parent_name":"ChatLayoutAttributes"},"Classes/ChatLayoutAttributes.html#/s:10ChatLayout0aB10AttributesC8viewSizeSo6CGSizeVvp":{"name":"viewSize","abstract":"

    UICollectionViews frame size. Added for convenience.

    ","parent_name":"ChatLayoutAttributes"},"Classes/ChatLayoutAttributes.html#/s:10ChatLayout0aB10AttributesC21adjustedContentInsetsSo06UIEdgeF0Vvp":{"name":"adjustedContentInsets","abstract":"

    UICollectionViews adjusted content insets. Added for convenience.

    ","parent_name":"ChatLayoutAttributes"},"Classes/ChatLayoutAttributes.html#/s:10ChatLayout0aB10AttributesC17visibleBoundsSizeSo6CGSizeVvp":{"name":"visibleBoundsSize","abstract":"

    ChatLayouts visible bounds size excluding adjustedContentInsets. Added for convenience.

    ","parent_name":"ChatLayoutAttributes"},"Classes/ChatLayoutAttributes.html#/s:10ChatLayout0aB10AttributesC11layoutFrameSo6CGRectVvp":{"name":"layoutFrame","abstract":"

    ChatLayouts visible bounds size excluding adjustedContentInsets and additionalInsets. Added for convenience.

    ","parent_name":"ChatLayoutAttributes"},"Classes/ChatLayoutAttributes.html#/c:@M@ChatLayout@objc(cs)ChatLayoutAttributes(im)copyWithZone:":{"name":"copy(with:)","abstract":"

    Returns an exact copy of ChatLayoutAttributes.

    ","parent_name":"ChatLayoutAttributes"},"Classes/ChatLayoutAttributes.html#/c:@M@ChatLayout@objc(cs)ChatLayoutAttributes(im)isEqual:":{"name":"isEqual(_:)","abstract":"

    Returns a Boolean value indicating whether two ChatLayoutAttributes are considered equal.

    ","parent_name":"ChatLayoutAttributes"},"Classes/ChatLayoutAttributes.html#/s:10ChatLayout0aB10AttributesC4kindAA8ItemKindOvp":{"name":"kind","abstract":"

    ItemKind represented by this attributes object.

    ","parent_name":"ChatLayoutAttributes"},"Protocols/ChatLayoutDelegate.html#/s:10ChatLayout0aB8DelegateP19shouldPresentHeader_2atSbA2AC_SitF":{"name":"shouldPresentHeader(_:at:)","abstract":"

    ChatLayout will call this method to ask if it should present the header in the current layout.

    ","parent_name":"ChatLayoutDelegate"},"Protocols/ChatLayoutDelegate.html#/s:10ChatLayout0aB8DelegateP19shouldPresentFooter_2atSbA2AC_SitF":{"name":"shouldPresentFooter(_:at:)","abstract":"

    ChatLayout will call this method to ask if it should present the footer in the current layout.

    ","parent_name":"ChatLayoutDelegate"},"Protocols/ChatLayoutDelegate.html#/s:10ChatLayout0aB8DelegateP11sizeForItem_2of2atAA0F4SizeOA2AC_AA0F4KindO10Foundation9IndexPathVtF":{"name":"sizeForItem(_:of:at:)","abstract":"

    ChatLayout will call this method to ask what size the item should have.

    ","parent_name":"ChatLayoutDelegate"},"Protocols/ChatLayoutDelegate.html#/s:10ChatLayout0aB8DelegateP16alignmentForItem_2of2atAA0aF9AlignmentOA2AC_AA0F4KindO10Foundation9IndexPathVtF":{"name":"alignmentForItem(_:of:at:)","abstract":"

    ChatLayout will call this method to ask what type of alignment the item should have.

    ","parent_name":"ChatLayoutDelegate"},"Protocols/ChatLayoutDelegate.html#/s:10ChatLayout0aB8DelegateP07initialB25AttributesForInsertedItem_2of2at9modifying2onyA2AC_AA0H4KindO10Foundation9IndexPathVAA0abE0CAA07InitialE11RequestTypeOtF":{"name":"initialLayoutAttributesForInsertedItem(_:of:at:modifying:on:)","abstract":"

    Asks the delegate to modify a layout attributes instance so that it represents the initial visual state of an item","parent_name":"ChatLayoutDelegate"},"Protocols/ChatLayoutDelegate.html#/s:10ChatLayout0aB8DelegateP05finalB24AttributesForDeletedItem_2of2at9modifyingyA2AC_AA0H4KindO10Foundation9IndexPathVAA0abE0CtF":{"name":"finalLayoutAttributesForDeletedItem(_:of:at:modifying:)","abstract":"

    Asks the delegate to modify a layout attributes instance so that it represents the final visual state of an item","parent_name":"ChatLayoutDelegate"},"Classes/ChatLayout.html#/s:10ChatLayoutAAC8delegateAA0aB8Delegate_pSgvp":{"name":"delegate","abstract":"

    ChatLayout delegate.

    ","parent_name":"ChatLayout"},"Classes/ChatLayout.html#/s:10ChatLayoutAAC8settingsAA0aB8SettingsVvp":{"name":"settings","abstract":"

    Additional settings for ChatLayout.

    ","parent_name":"ChatLayout"},"Classes/ChatLayout.html#/s:10ChatLayoutAAC39keepContentOffsetAtBottomOnBatchUpdatesSbvp":{"name":"keepContentOffsetAtBottomOnBatchUpdates","abstract":"

    Default UIScrollView behaviour is to keep content offset constant from the top edge. If this flag is set to true","parent_name":"ChatLayout"},"Classes/ChatLayout.html#/s:10ChatLayoutAAC13visibleBoundsSo6CGRectVvp":{"name":"visibleBounds","abstract":"

    Represent the currently visible rectangle.

    ","parent_name":"ChatLayout"},"Classes/ChatLayout.html#/s:10ChatLayoutAAC11layoutFrameSo6CGRectVvp":{"name":"layoutFrame","abstract":"

    Represent the rectangle where all the items are aligned.

    ","parent_name":"ChatLayout"},"Classes/ChatLayout.html#/c:@M@ChatLayout@objc(cs)ChatLayout(py)developmentLayoutDirection":{"name":"developmentLayoutDirection","abstract":"

    The direction of the language you used when designing ChatLayout layout.

    ","parent_name":"ChatLayout"},"Classes/ChatLayout.html#/c:@M@ChatLayout@objc(cs)ChatLayout(py)flipsHorizontallyInOppositeLayoutDirection":{"name":"flipsHorizontallyInOppositeLayoutDirection","abstract":"

    A Boolean value that indicates whether the horizontal coordinate system is automatically flipped at appropriate times.

    ","parent_name":"ChatLayout"},"Classes/ChatLayout.html#/c:@M@ChatLayout@objc(cs)ChatLayout(cpy)layoutAttributesClass":{"name":"layoutAttributesClass","abstract":"

    Custom layoutAttributesClass is ChatLayoutAttributes.

    ","parent_name":"ChatLayout"},"Classes/ChatLayout.html#/c:@M@ChatLayout@objc(cs)ChatLayout(cpy)invalidationContextClass":{"name":"invalidationContextClass","abstract":"

    Custom invalidationContextClass is ChatLayoutInvalidationContext.

    ","parent_name":"ChatLayout"},"Classes/ChatLayout.html#/c:@M@ChatLayout@objc(cs)ChatLayout(py)collectionViewContentSize":{"name":"collectionViewContentSize","abstract":"

    The width and height of the collection view’s contents.

    ","parent_name":"ChatLayout"},"Classes/ChatLayout.html#/s:10ChatLayoutAAC16enableIOS15_1FixSbvp":{"name":"enableIOS15_1Fix","abstract":"

    There is an issue in IOS 15.1 that proposed content offset is being ignored by the UICollectionView when user is scrolling.","parent_name":"ChatLayout"},"Classes/ChatLayout.html#/s:10ChatLayoutAAC027flipsHorizontallyInOppositeB9DirectionABSb_tcfc":{"name":"init(flipsHorizontallyInOppositeLayoutDirection:)","abstract":"

    Default constructor.

    ","parent_name":"ChatLayout"},"Classes/ChatLayout.html#/c:@M@ChatLayout@objc(cs)ChatLayout(im)initWithCoder:":{"name":"init(coder:)","abstract":"

    Returns an object initialized from data in a given unarchiver.

    ","parent_name":"ChatLayout"},"Classes/ChatLayout.html#/s:10ChatLayoutAAC24getContentOffsetSnapshot4fromAA0ab8PositionF0VSgAF4EdgeO_tF":{"name":"getContentOffsetSnapshot(from:)","abstract":"

    Get current offset of the item closest to the provided edge.

    ","parent_name":"ChatLayout"},"Classes/ChatLayout.html#/s:10ChatLayoutAAC20restoreContentOffset4withyAA0aB16PositionSnapshotV_tF":{"name":"restoreContentOffset(with:)","abstract":"

    Invalidates layout of the UICollectionView and trying to keep the offset of the item provided in ChatLayoutPositionSnapshot

    ","parent_name":"ChatLayout"},"Classes/ChatLayout.html#/c:@M@ChatLayout@objc(cs)ChatLayout(im)prepareLayout":{"name":"prepare()","abstract":"

    Tells the layout object to update the current layout.

    ","parent_name":"ChatLayout"},"Classes/ChatLayout.html#/c:@M@ChatLayout@objc(cs)ChatLayout(im)layoutAttributesForElementsInRect:":{"name":"layoutAttributesForElements(in:)","abstract":"

    Retrieves the layout attributes for all of the cells and views in the specified rectangle.

    ","parent_name":"ChatLayout"},"Classes/ChatLayout.html#/c:@M@ChatLayout@objc(cs)ChatLayout(im)layoutAttributesForItemAtIndexPath:":{"name":"layoutAttributesForItem(at:)","abstract":"

    Retrieves layout information for an item at the specified index path with a corresponding cell.

    ","parent_name":"ChatLayout"},"Classes/ChatLayout.html#/c:@M@ChatLayout@objc(cs)ChatLayout(im)layoutAttributesForSupplementaryViewOfKind:atIndexPath:":{"name":"layoutAttributesForSupplementaryView(ofKind:at:)","abstract":"

    Retrieves the layout attributes for the specified supplementary view.

    ","parent_name":"ChatLayout"},"Classes/ChatLayout.html#/c:@M@ChatLayout@objc(cs)ChatLayout(im)prepareForAnimatedBoundsChange:":{"name":"prepare(forAnimatedBoundsChange:)","abstract":"

    Prepares the layout object for animated changes to the view’s bounds or the insertion or deletion of items.

    ","parent_name":"ChatLayout"},"Classes/ChatLayout.html#/c:@M@ChatLayout@objc(cs)ChatLayout(im)finalizeAnimatedBoundsChange":{"name":"finalizeAnimatedBoundsChange()","abstract":"

    Cleans up after any animated changes to the view’s bounds or after the insertion or deletion of items.

    ","parent_name":"ChatLayout"},"Classes/ChatLayout.html#/c:@M@ChatLayout@objc(cs)ChatLayout(im)shouldInvalidateLayoutForPreferredLayoutAttributes:withOriginalAttributes:":{"name":"shouldInvalidateLayout(forPreferredLayoutAttributes:withOriginalAttributes:)","abstract":"

    Asks the layout object if changes to a self-sizing cell require a layout update.

    ","parent_name":"ChatLayout"},"Classes/ChatLayout.html#/c:@M@ChatLayout@objc(cs)ChatLayout(im)invalidationContextForPreferredLayoutAttributes:withOriginalAttributes:":{"name":"invalidationContext(forPreferredLayoutAttributes:withOriginalAttributes:)","abstract":"

    Retrieves a context object that identifies the portions of the layout that should change in response to dynamic cell changes.

    ","parent_name":"ChatLayout"},"Classes/ChatLayout.html#/c:@M@ChatLayout@objc(cs)ChatLayout(im)shouldInvalidateLayoutForBoundsChange:":{"name":"shouldInvalidateLayout(forBoundsChange:)","abstract":"

    Asks the layout object if the new bounds require a layout update.

    ","parent_name":"ChatLayout"},"Classes/ChatLayout.html#/c:@M@ChatLayout@objc(cs)ChatLayout(im)invalidationContextForBoundsChange:":{"name":"invalidationContext(forBoundsChange:)","abstract":"

    Retrieves a context object that defines the portions of the layout that should change when a bounds change occurs.

    ","parent_name":"ChatLayout"},"Classes/ChatLayout.html#/c:@M@ChatLayout@objc(cs)ChatLayout(im)invalidateLayoutWithContext:":{"name":"invalidateLayout(with:)","abstract":"

    Invalidates the current layout using the information in the provided context object.

    ","parent_name":"ChatLayout"},"Classes/ChatLayout.html#/c:@M@ChatLayout@objc(cs)ChatLayout(im)invalidateLayout":{"name":"invalidateLayout()","abstract":"

    Invalidates the current layout and triggers a layout update.

    ","parent_name":"ChatLayout"},"Classes/ChatLayout.html#/c:@M@ChatLayout@objc(cs)ChatLayout(im)targetContentOffsetForProposedContentOffset:":{"name":"targetContentOffset(forProposedContentOffset:)","abstract":"

    Retrieves the content offset to use after an animated layout update or change.

    ","parent_name":"ChatLayout"},"Classes/ChatLayout.html#/c:@M@ChatLayout@objc(cs)ChatLayout(im)prepareForCollectionViewUpdates:":{"name":"prepare(forCollectionViewUpdates:)","abstract":"

    Notifies the layout object that the contents of the collection view are about to change.

    ","parent_name":"ChatLayout"},"Classes/ChatLayout.html#/c:@M@ChatLayout@objc(cs)ChatLayout(im)finalizeCollectionViewUpdates":{"name":"finalizeCollectionViewUpdates()","abstract":"

    Performs any additional animations or clean up needed during a collection view update.

    ","parent_name":"ChatLayout"},"Classes/ChatLayout.html#/c:@M@ChatLayout@objc(cs)ChatLayout(im)initialLayoutAttributesForAppearingItemAtIndexPath:":{"name":"initialLayoutAttributesForAppearingItem(at:)","abstract":"

    Retrieves the starting layout information for an item being inserted into the collection view.

    ","parent_name":"ChatLayout"},"Classes/ChatLayout.html#/c:@M@ChatLayout@objc(cs)ChatLayout(im)finalLayoutAttributesForDisappearingItemAtIndexPath:":{"name":"finalLayoutAttributesForDisappearingItem(at:)","abstract":"

    Retrieves the final layout information for an item that is about to be removed from the collection view.

    ","parent_name":"ChatLayout"},"Classes/ChatLayout.html#/c:@M@ChatLayout@objc(cs)ChatLayout(im)initialLayoutAttributesForAppearingSupplementaryElementOfKind:atIndexPath:":{"name":"initialLayoutAttributesForAppearingSupplementaryElement(ofKind:at:)","abstract":"

    Retrieves the starting layout information for a supplementary view being inserted into the collection view.

    ","parent_name":"ChatLayout"},"Classes/ChatLayout.html#/c:@M@ChatLayout@objc(cs)ChatLayout(im)finalLayoutAttributesForDisappearingSupplementaryElementOfKind:atIndexPath:":{"name":"finalLayoutAttributesForDisappearingSupplementaryElement(ofKind:at:)","abstract":"

    Retrieves the final layout information for a supplementary view that is about to be removed from the collection view.

    ","parent_name":"ChatLayout"},"Classes/ChatLayout.html":{"name":"ChatLayout","abstract":"

    A collection view layout that can display items in a grid similar to UITableView but aligning them"},"Protocols/ChatLayoutDelegate.html":{"name":"ChatLayoutDelegate","abstract":"

    ChatLayout delegate

    "},"Classes/ChatLayoutAttributes.html":{"name":"ChatLayoutAttributes","abstract":"

    Custom implementation of UICollectionViewLayoutAttributes

    "},"Structs/ChatLayoutSettings.html":{"name":"ChatLayoutSettings","abstract":"

    ChatLayout settings.

    "},"Structs/ChatLayoutPositionSnapshot.html":{"name":"ChatLayoutPositionSnapshot","abstract":"

    Represents content offset position expressed by the specific item and it offset from the top or bottom edge.

    "},"Classes/ChatLayoutInvalidationContext.html":{"name":"ChatLayoutInvalidationContext","abstract":"

    Custom implementation of UICollectionViewLayoutInvalidationContext

    "},"Enums/ItemKind.html":{"name":"ItemKind","abstract":"

    Type of the item supported by ChatLayout

    "},"Enums/ItemSize.html":{"name":"ItemSize","abstract":"

    Represents desired item size.

    "},"Enums/ChatItemAlignment.html":{"name":"ChatItemAlignment","abstract":"

    Represent item alignment in collection view layout

    "},"Core.html":{"name":"Core"},"Extras.html":{"name":"Extras"},"Other%20Guides.html":{"name":"Other Guides","abstract":"

    The following guides are available globally.

    "},"Other%20Enums.html":{"name":"Other Enumerations","abstract":"

    The following enumerations are available globally.

    "}} \ No newline at end of file diff --git a/docs/docsets/ChatLayout.docset/Contents/Resources/docSet.dsidx b/docs/docsets/ChatLayout.docset/Contents/Resources/docSet.dsidx index 85b1076f..56eb5c63 100644 Binary files a/docs/docsets/ChatLayout.docset/Contents/Resources/docSet.dsidx and b/docs/docsets/ChatLayout.docset/Contents/Resources/docSet.dsidx differ diff --git a/docs/docsets/ChatLayout.tgz b/docs/docsets/ChatLayout.tgz index bbe70db2..6b5c8599 100644 Binary files a/docs/docsets/ChatLayout.tgz and b/docs/docsets/ChatLayout.tgz differ diff --git a/docs/index.html b/docs/index.html index 24a4d74c..b7d1bf10 100644 --- a/docs/index.html +++ b/docs/index.html @@ -20,7 +20,7 @@

    - ChatLayout 1.1.10 Docs + ChatLayout 1.1.14 Docs (100% documented)

    @@ -323,7 +323,7 @@

    Author

    diff --git a/docs/readme.html b/docs/readme.html index 34554140..bff95332 100644 --- a/docs/readme.html +++ b/docs/readme.html @@ -20,7 +20,7 @@

    - ChatLayout 1.1.10 Docs + ChatLayout 1.1.14 Docs (100% documented)

    @@ -323,7 +323,7 @@

    Author

    diff --git a/docs/search.json b/docs/search.json index 47875518..ad159f23 100644 --- a/docs/search.json +++ b/docs/search.json @@ -1 +1 @@ -{"Enums/InitialAttributesRequestType.html#/s:10ChatLayout28InitialAttributesRequestTypeO7initialyA2CmF":{"name":"initial","abstract":"

    UICollectionView initially asks about the layout of an item.

    ","parent_name":"InitialAttributesRequestType"},"Enums/InitialAttributesRequestType.html#/s:10ChatLayout28InitialAttributesRequestTypeO12invalidationyA2CmF":{"name":"invalidation","abstract":"

    An item is being invalidated.

    ","parent_name":"InitialAttributesRequestType"},"Enums/InitialAttributesRequestType.html":{"name":"InitialAttributesRequestType","abstract":"

    Represents the point in time ChatLayout when chat layout asks about layout attributes modification.

    "},"readme.html":{"name":"README"},"Structs/VoidViewFactory.html#/s:10ChatLayout15VoidViewFactoryV0cD0C":{"name":"VoidView","abstract":"

    Nil view placeholder type.

    ","parent_name":"VoidViewFactory"},"Structs/VoidViewFactory.html#/s:10ChatLayout17StaticViewFactoryP05buildD06within0D0QzSgSo6CGRectV_tFZ":{"name":"buildView(within:)","parent_name":"VoidViewFactory"},"Protocols/StaticViewFactory.html#/s:10ChatLayout17StaticViewFactoryP0D0Qa":{"name":"View","abstract":"

    A type of the view to build.

    ","parent_name":"StaticViewFactory"},"Protocols/StaticViewFactory.html#/s:10ChatLayout17StaticViewFactoryP05buildD06within0D0QzSgSo6CGRectV_tFZ":{"name":"buildView(within:)","abstract":"

    Factory method that will be called by the corresponding container UIView

    ","parent_name":"StaticViewFactory"},"Classes/RoundedCornersContainerView.html#/s:10ChatLayout27RoundedCornersContainerViewC12cornerRadius12CoreGraphics7CGFloatVSgvp":{"name":"cornerRadius","abstract":"

    Corner radius. If not provided then the half of the current view height will be used.

    ","parent_name":"RoundedCornersContainerView"},"Classes/RoundedCornersContainerView.html#/s:10ChatLayout27RoundedCornersContainerViewC06customF0xvp":{"name":"customView","abstract":"

    Contained view.

    ","parent_name":"RoundedCornersContainerView"},"Classes/RoundedCornersContainerView.html#/s:10ChatLayout27RoundedCornersContainerViewC5frameACyxGSo6CGRectV_tcfc":{"name":"init(frame:)","abstract":"

    Initializes and returns a newly allocated view object with the specified frame rectangle.

    ","parent_name":"RoundedCornersContainerView"},"Classes/RoundedCornersContainerView.html#/s:10ChatLayout27RoundedCornersContainerViewC5coderACyxGSgSo7NSCoderC_tcfc":{"name":"init(coder:)","abstract":"

    Returns an object initialized from data in a given unarchiver.

    ","parent_name":"RoundedCornersContainerView"},"Classes/RoundedCornersContainerView.html#/s:10ChatLayout27RoundedCornersContainerViewC14layoutSubviewsyyF":{"name":"layoutSubviews()","abstract":"

    Lays out subviews.

    ","parent_name":"RoundedCornersContainerView"},"Enums/ImageMaskedViewTransformation.html#/s:10ChatLayout29ImageMaskedViewTransformationO4asIsyA2CmF":{"name":"asIs","abstract":"

    Keep image as it is.

    ","parent_name":"ImageMaskedViewTransformation"},"Enums/ImageMaskedViewTransformation.html#/s:10ChatLayout29ImageMaskedViewTransformationO17flippedVerticallyyA2CmF":{"name":"flippedVertically","abstract":"

    Flip image vertically.

    ","parent_name":"ImageMaskedViewTransformation"},"Classes/ImageMaskedView.html#/s:10ChatLayout15ImageMaskedViewC06customE0xvp":{"name":"customView","abstract":"

    Contained view.

    ","parent_name":"ImageMaskedView"},"Classes/ImageMaskedView.html#/s:10ChatLayout15ImageMaskedViewC07maskingC0So7UIImageCSgvp":{"name":"maskingImage","abstract":"

    An Image to be used as a mask for the customView.

    ","parent_name":"ImageMaskedView"},"Classes/ImageMaskedView.html#/s:10ChatLayout15ImageMaskedViewC18maskTransformationAA0cdeG0Ovp":{"name":"maskTransformation","abstract":"

    A transformation to apply to the maskingImage.

    ","parent_name":"ImageMaskedView"},"Classes/ImageMaskedView.html#/s:10ChatLayout15ImageMaskedViewC5frameACyxGSo6CGRectV_tcfc":{"name":"init(frame:)","abstract":"

    Initializes and returns a newly allocated view object with the specified frame rectangle.

    ","parent_name":"ImageMaskedView"},"Classes/ImageMaskedView.html#/s:10ChatLayout15ImageMaskedViewC5coderACyxGSgSo7NSCoderC_tcfc":{"name":"init(coder:)","abstract":"

    Returns an object initialized from data in a given unarchiver.

    ","parent_name":"ImageMaskedView"},"Classes/ImageMaskedView.html#/s:10ChatLayout15ImageMaskedViewC5frameSo6CGRectVvp":{"name":"frame","abstract":"

    The frame rectangle, which describes the view’s location and size in its superview’s coordinate system.

    ","parent_name":"ImageMaskedView"},"Classes/ImageMaskedView.html#/s:10ChatLayout15ImageMaskedViewC6boundsSo6CGRectVvp":{"name":"bounds","abstract":"

    The bounds rectangle, which describes the view’s location and size in its own coordinate system.

    ","parent_name":"ImageMaskedView"},"Classes/EdgeAligningView/Edge.html#/s:10ChatLayout16EdgeAligningViewC0C0O3topyAEyx_GAGmSo6UIViewCRbzlF":{"name":"top","abstract":"

    Top edge

    ","parent_name":"Edge"},"Classes/EdgeAligningView/Edge.html#/s:10ChatLayout16EdgeAligningViewC0C0O7leadingyAEyx_GAGmSo6UIViewCRbzlF":{"name":"leading","abstract":"

    Leading edge

    ","parent_name":"Edge"},"Classes/EdgeAligningView/Edge.html#/s:10ChatLayout16EdgeAligningViewC0C0O8trailingyAEyx_GAGmSo6UIViewCRbzlF":{"name":"trailing","abstract":"

    Trailing edge

    ","parent_name":"Edge"},"Classes/EdgeAligningView/Edge.html#/s:10ChatLayout16EdgeAligningViewC0C0O6bottomyAEyx_GAGmSo6UIViewCRbzlF":{"name":"bottom","abstract":"

    Bottom edge

    ","parent_name":"Edge"},"Classes/EdgeAligningView/Edge.html":{"name":"Edge","abstract":"

    Represents an edge of EdgeAligningView

    ","parent_name":"EdgeAligningView"},"Classes/EdgeAligningView.html#/s:10ChatLayout16EdgeAligningViewC13flexibleEdgesShyAC0C0Oyx_GGvp":{"name":"flexibleEdges","abstract":"

    Set of edge constraints to be set as loose.

    ","parent_name":"EdgeAligningView"},"Classes/EdgeAligningView.html#/s:10ChatLayout16EdgeAligningViewC06customE0xvp":{"name":"customView","abstract":"

    Contained view.

    ","parent_name":"EdgeAligningView"},"Classes/EdgeAligningView.html#/s:10ChatLayout16EdgeAligningViewC4with13flexibleEdgesACyxGx_ShyAC0C0Oyx_GGtcfc":{"name":"init(with:flexibleEdges:)","abstract":"

    Initializes and returns a newly allocated EdgeAligningView

    ","parent_name":"EdgeAligningView"},"Classes/EdgeAligningView.html#/s:10ChatLayout16EdgeAligningViewC5frameACyxGSo6CGRectV_tcfc":{"name":"init(frame:)","abstract":"

    Initializes and returns a newly allocated view object with the specified frame rectangle.

    ","parent_name":"EdgeAligningView"},"Enums/CellLayoutContainerViewAlignment.html#/s:10ChatLayout04CellB22ContainerViewAlignmentO4fillyA2CmF":{"name":"fill","abstract":"

    Align the top and bottom edges of horizontally stacked items tightly to the container.

    ","parent_name":"CellLayoutContainerViewAlignment"},"Enums/CellLayoutContainerViewAlignment.html#/s:10ChatLayout04CellB22ContainerViewAlignmentO3topyA2CmF":{"name":"top","abstract":"

    Align the top edges of horizontally stacked items tightly to the container.

    ","parent_name":"CellLayoutContainerViewAlignment"},"Enums/CellLayoutContainerViewAlignment.html#/s:10ChatLayout04CellB22ContainerViewAlignmentO6centeryA2CmF":{"name":"center","abstract":"

    Center items in a horizontal stack vertically.

    ","parent_name":"CellLayoutContainerViewAlignment"},"Enums/CellLayoutContainerViewAlignment.html#/s:10ChatLayout04CellB22ContainerViewAlignmentO6bottomyA2CmF":{"name":"bottom","abstract":"

    Align the bottom edges of horizontally stacked items tightly to the container.

    ","parent_name":"CellLayoutContainerViewAlignment"},"Classes/CellLayoutContainerView.html#/s:10ChatLayout04CellB13ContainerViewC07leadingE00E0QzSgvp":{"name":"leadingView","abstract":"

    Leading accessory view.

    ","parent_name":"CellLayoutContainerView"},"Classes/CellLayoutContainerView.html#/s:10ChatLayout04CellB13ContainerViewC06customE0q_vp":{"name":"customView","abstract":"

    Main view.

    ","parent_name":"CellLayoutContainerView"},"Classes/CellLayoutContainerView.html#/s:10ChatLayout04CellB13ContainerViewC08trailingE00E0Qy0_Sgvp":{"name":"trailingView","abstract":"

    Trailing accessory view.

    ","parent_name":"CellLayoutContainerView"},"Classes/CellLayoutContainerView.html#/s:10ChatLayout04CellB13ContainerViewC9alignmentAA0cbdE9AlignmentOvp":{"name":"alignment","abstract":"

    Alignment that corresponds to UIStackView.Alignment

    ","parent_name":"CellLayoutContainerView"},"Classes/CellLayoutContainerView.html#/s:10ChatLayout04CellB13ContainerViewC7spacing12CoreGraphics7CGFloatVvp":{"name":"spacing","abstract":"

    Default spacing between the views.

    ","parent_name":"CellLayoutContainerView"},"Classes/CellLayoutContainerView.html#/s:10ChatLayout04CellB13ContainerViewC20customLeadingSpacing12CoreGraphics7CGFloatVvp":{"name":"customLeadingSpacing","abstract":"

    Custom spacing between the leading and main views.

    ","parent_name":"CellLayoutContainerView"},"Classes/CellLayoutContainerView.html#/s:10ChatLayout04CellB13ContainerViewC21customTrailingSpacing12CoreGraphics7CGFloatVvp":{"name":"customTrailingSpacing","abstract":"

    Custom spacing between the main and trailing views.

    ","parent_name":"CellLayoutContainerView"},"Classes/CellLayoutContainerView.html#/s:10ChatLayout04CellB13ContainerViewC5frameACyxq_q0_GSo6CGRectV_tcfc":{"name":"init(frame:)","abstract":"

    Initializes and returns a newly allocated view object with the specified frame rectangle.

    ","parent_name":"CellLayoutContainerView"},"Classes/CellLayoutContainerView.html#/s:10ChatLayout04CellB13ContainerViewC5coderACyxq_q0_GSgSo7NSCoderC_tcfc":{"name":"init(coder:)","abstract":"

    Returns an object initialized from data in a given unarchiver.

    ","parent_name":"CellLayoutContainerView"},"Classes/MessageContainerView.html#/s:10ChatLayout20MessageContainerViewC09accessoryE00E0QzSgvp":{"name":"accessoryView","abstract":"

    An accessory view.

    ","parent_name":"MessageContainerView"},"Classes/MessageContainerView.html#/s:10ChatLayout20MessageContainerViewC06customE0q_vp":{"name":"customView","abstract":"

    Main view.

    ","parent_name":"MessageContainerView"},"Classes/MessageContainerView.html#/s:10ChatLayout20MessageContainerViewC9alignmentAA0A13ItemAlignmentOvp":{"name":"alignment","abstract":"

    An alignment of the contained views within the MessageContainerView,

    ","parent_name":"MessageContainerView"},"Classes/MessageContainerView.html#/s:10ChatLayout20MessageContainerViewC5frameACyxq_GSo6CGRectV_tcfc":{"name":"init(frame:)","abstract":"

    Initializes and returns a newly allocated view object with the specified frame rectangle.

    ","parent_name":"MessageContainerView"},"Classes/MessageContainerView.html#/s:10ChatLayout20MessageContainerViewC5coderACyxq_GSgSo7NSCoderC_tcfc":{"name":"init(coder:)","abstract":"

    Returns an object initialized from data in a given unarchiver.

    ","parent_name":"MessageContainerView"},"Classes/ContainerCollectionReusableView.html#/s:10ChatLayout31ContainerCollectionReusableViewC15reuseIdentifierSSvpZ":{"name":"reuseIdentifier","abstract":"

    Default reuse identifier is set with the class name.

    ","parent_name":"ContainerCollectionReusableView"},"Classes/ContainerCollectionReusableView.html#/s:10ChatLayout31ContainerCollectionReusableViewC06customF0xvp":{"name":"customView","abstract":"

    Contained view.

    ","parent_name":"ContainerCollectionReusableView"},"Classes/ContainerCollectionReusableView.html#/s:10ChatLayout31ContainerCollectionReusableViewC8delegateAA0cdF12CellDelegate_pSgvp":{"name":"delegate","abstract":"

    An instance of ContainerCollectionViewCellDelegate

    ","parent_name":"ContainerCollectionReusableView"},"Classes/ContainerCollectionReusableView.html#/s:10ChatLayout31ContainerCollectionReusableViewC15prepareForReuseyyF":{"name":"prepareForReuse()","abstract":"

    Performs any clean up necessary to prepare the view for use again.

    ","parent_name":"ContainerCollectionReusableView"},"Classes/ContainerCollectionReusableView.html#/s:10ChatLayout31ContainerCollectionReusableViewC09preferredB17AttributesFittingySo012UICollectionfbH0CAFF":{"name":"preferredLayoutAttributesFitting(_:)","abstract":"

    Gives the cell a chance to modify the attributes provided by the layout object.

    ","parent_name":"ContainerCollectionReusableView"},"Classes/ContainerCollectionReusableView.html#/s:10ChatLayout31ContainerCollectionReusableViewC5applyyySo012UICollectionfB10AttributesCF":{"name":"apply(_:)","abstract":"

    Applies the specified layout attributes to the view.

    ","parent_name":"ContainerCollectionReusableView"},"Protocols/ContainerCollectionViewCellDelegate.html#/s:10ChatLayout35ContainerCollectionViewCellDelegateP15prepareForReuseyyF":{"name":"prepareForReuse()","abstract":"

    Perform any clean up necessary to prepare the view for use again.

    ","parent_name":"ContainerCollectionViewCellDelegate"},"Protocols/ContainerCollectionViewCellDelegate.html#/s:10ChatLayout35ContainerCollectionViewCellDelegateP09preferredB17AttributesFittingyAA0abI0CSgAFF":{"name":"preferredLayoutAttributesFitting(_:)","abstract":"

    Allows to override the call of ContainerCollectionViewCell/ContainerCollectionReusableView","parent_name":"ContainerCollectionViewCellDelegate"},"Protocols/ContainerCollectionViewCellDelegate.html#/s:10ChatLayout35ContainerCollectionViewCellDelegateP015modifyPreferredB17AttributesFittingyyAA0abJ0CF":{"name":"modifyPreferredLayoutAttributesFitting(_:)","abstract":"

    Allows to additionally modify ChatLayoutAttributes after the UICollectionReusableView.preferredLayoutAttributesFitting(...)","parent_name":"ContainerCollectionViewCellDelegate"},"Protocols/ContainerCollectionViewCellDelegate.html#/s:10ChatLayout35ContainerCollectionViewCellDelegateP5applyyyAA0aB10AttributesCF":{"name":"apply(_:)","abstract":"

    Apply the specified layout attributes to the view.","parent_name":"ContainerCollectionViewCellDelegate"},"Classes/ContainerCollectionViewCell.html#/s:10ChatLayout27ContainerCollectionViewCellC15reuseIdentifierSSvpZ":{"name":"reuseIdentifier","abstract":"

    Default reuse identifier is set with the class name.

    ","parent_name":"ContainerCollectionViewCell"},"Classes/ContainerCollectionViewCell.html#/s:10ChatLayout27ContainerCollectionViewCellC06customE0xvp":{"name":"customView","abstract":"

    Contained view.

    ","parent_name":"ContainerCollectionViewCell"},"Classes/ContainerCollectionViewCell.html#/s:10ChatLayout27ContainerCollectionViewCellC8delegateAA0cdeF8Delegate_pSgvp":{"name":"delegate","abstract":"

    An instance of ContainerCollectionViewCellDelegate

    ","parent_name":"ContainerCollectionViewCell"},"Classes/ContainerCollectionViewCell.html#/s:10ChatLayout27ContainerCollectionViewCellC15prepareForReuseyyF":{"name":"prepareForReuse()","abstract":"

    Performs any clean up necessary to prepare the view for use again.

    ","parent_name":"ContainerCollectionViewCell"},"Classes/ContainerCollectionViewCell.html#/s:10ChatLayout27ContainerCollectionViewCellC09preferredB17AttributesFittingySo012UICollectionebH0CAFF":{"name":"preferredLayoutAttributesFitting(_:)","abstract":"

    Gives the cell a chance to modify the attributes provided by the layout object.

    ","parent_name":"ContainerCollectionViewCell"},"Classes/ContainerCollectionViewCell.html#/s:10ChatLayout27ContainerCollectionViewCellC5applyyySo012UICollectioneB10AttributesCF":{"name":"apply(_:)","abstract":"

    Applies the specified layout attributes to the view.

    ","parent_name":"ContainerCollectionViewCell"},"Classes/ContainerCollectionViewCell.html":{"name":"ContainerCollectionViewCell","abstract":"

    A container UICollectionViewCell that constraints its contained view to its margins.

    "},"Protocols/ContainerCollectionViewCellDelegate.html":{"name":"ContainerCollectionViewCellDelegate","abstract":"

    A delegate of ContainerCollectionViewCell/ContainerCollectionReusableView should implement this methods if"},"Classes/ContainerCollectionReusableView.html":{"name":"ContainerCollectionReusableView","abstract":"

    A container UICollectionReusableView that constraints its contained view to its margins.

    "},"Classes/MessageContainerView.html":{"name":"MessageContainerView","abstract":"

    A container view that helps to layout the message view and its accessory

    "},"Classes/CellLayoutContainerView.html":{"name":"CellLayoutContainerView","abstract":"

    CellLayoutContainerView is a container view that helps to arrange the views in a horizontal cell-alike layout with an optional LeadingAccessory first,"},"Enums/CellLayoutContainerViewAlignment.html":{"name":"CellLayoutContainerViewAlignment","abstract":"

    Alignment for CellLayoutContainerView that corresponds to UIStackView.Alignment

    "},"Classes/EdgeAligningView.html":{"name":"EdgeAligningView","abstract":"

    Container view that allows its CustomView to have lose connection to the margins of the container according to the"},"Classes/ImageMaskedView.html":{"name":"ImageMaskedView","abstract":"

    A container view that masks its contained view with an image provided.

    "},"Enums/ImageMaskedViewTransformation.html":{"name":"ImageMaskedViewTransformation","abstract":"

    A transformation to apply to the ImageMaskedView.maskingImage

    "},"Classes/RoundedCornersContainerView.html":{"name":"RoundedCornersContainerView","abstract":"

    A container view that keeps its CustomView masked with the corner radius provided.

    "},"Protocols/StaticViewFactory.html":{"name":"StaticViewFactory","abstract":"

    A factory that creates optional contained UIViews should conform to this protocol.

    "},"Structs/VoidViewFactory.html":{"name":"VoidViewFactory","abstract":"

    Use this factory to specify that this view should not be build and should be equal to nil within the container.

    "},"Enums/ChatItemAlignment.html#/s:10ChatLayout0A13ItemAlignmentO7leadingyA2CmF":{"name":"leading","abstract":"

    Should be aligned at the leading edge of the layout. That includes all the additional content offsets.

    ","parent_name":"ChatItemAlignment"},"Enums/ChatItemAlignment.html#/s:10ChatLayout0A13ItemAlignmentO6centeryA2CmF":{"name":"center","abstract":"

    Should be aligned at the center of the layout.

    ","parent_name":"ChatItemAlignment"},"Enums/ChatItemAlignment.html#/s:10ChatLayout0A13ItemAlignmentO8trailingyA2CmF":{"name":"trailing","abstract":"

    Should be aligned at the trailing edge of the layout.

    ","parent_name":"ChatItemAlignment"},"Enums/ChatItemAlignment.html#/s:10ChatLayout0A13ItemAlignmentO9fullWidthyA2CmF":{"name":"fullWidth","abstract":"

    Should be aligned using the full width of the available content width.

    ","parent_name":"ChatItemAlignment"},"Enums/ItemSize.html#/s:10ChatLayout8ItemSizeO4autoyA2CmF":{"name":"auto","abstract":"

    Item size should be fully calculated by the ChatLayout. Initial estimated size will be taken from ChatLayoutSettings.

    ","parent_name":"ItemSize"},"Enums/ItemSize.html#/s:10ChatLayout8ItemSizeO9estimatedyACSo6CGSizeVcACmF":{"name":"estimated(_:)","abstract":"

    Item size should be fully calculated by the ChatLayout. Initial estimated size should be taken from the value provided.

    ","parent_name":"ItemSize"},"Enums/ItemSize.html#/s:10ChatLayout8ItemSizeO5exactyACSo6CGSizeVcACmF":{"name":"exact(_:)","abstract":"

    Item size should be exactly equal to the value provided.

    ","parent_name":"ItemSize"},"Enums/ItemKind.html#/s:10ChatLayout8ItemKindO6headeryA2CmF":{"name":"header","abstract":"

    Header item

    ","parent_name":"ItemKind"},"Enums/ItemKind.html#/s:10ChatLayout8ItemKindO4cellyA2CmF":{"name":"cell","abstract":"

    Cell item

    ","parent_name":"ItemKind"},"Enums/ItemKind.html#/s:10ChatLayout8ItemKindO6footeryA2CmF":{"name":"footer","abstract":"

    Footer item

    ","parent_name":"ItemKind"},"Enums/ItemKind.html#/s:10ChatLayout8ItemKindO015isSupplementaryC0Sbvp":{"name":"isSupplementaryItem","abstract":"

    Returns: true if this ItemKind is equal to ItemKind.header or ItemKind.footer

    ","parent_name":"ItemKind"},"Classes/ChatLayoutInvalidationContext.html#/s:10ChatLayout0aB19InvalidationContextC010invalidateB7MetricsSbvp":{"name":"invalidateLayoutMetrics","abstract":"

    Indicates whether to recompute the positions and sizes of the items based on the current","parent_name":"ChatLayoutInvalidationContext"},"Structs/ChatLayoutPositionSnapshot/Edge.html#/s:10ChatLayout0aB16PositionSnapshotV4EdgeO3topyA2EmF":{"name":"top","abstract":"

    Top edge of the UICollectionView

    ","parent_name":"Edge"},"Structs/ChatLayoutPositionSnapshot/Edge.html#/s:10ChatLayout0aB16PositionSnapshotV4EdgeO6bottomyA2EmF":{"name":"bottom","abstract":"

    Bottom edge of the UICollectionView

    ","parent_name":"Edge"},"Structs/ChatLayoutPositionSnapshot/Edge.html":{"name":"Edge","abstract":"

    Represents the edge.

    ","parent_name":"ChatLayoutPositionSnapshot"},"Structs/ChatLayoutPositionSnapshot.html#/s:10ChatLayout0aB16PositionSnapshotV9indexPath10Foundation05IndexF0Vvp":{"name":"indexPath","abstract":"

    Item’s IndexPath

    ","parent_name":"ChatLayoutPositionSnapshot"},"Structs/ChatLayoutPositionSnapshot.html#/s:10ChatLayout0aB16PositionSnapshotV4kindAA8ItemKindOvp":{"name":"kind","abstract":"

    Kind of item at the indexPath

    ","parent_name":"ChatLayoutPositionSnapshot"},"Structs/ChatLayoutPositionSnapshot.html#/s:10ChatLayout0aB16PositionSnapshotV4edgeAC4EdgeOvp":{"name":"edge","abstract":"

    The edge of the offset.

    ","parent_name":"ChatLayoutPositionSnapshot"},"Structs/ChatLayoutPositionSnapshot.html#/s:10ChatLayout0aB16PositionSnapshotV6offset12CoreGraphics7CGFloatVvp":{"name":"offset","abstract":"

    The offset from the edge.

    ","parent_name":"ChatLayoutPositionSnapshot"},"Structs/ChatLayoutPositionSnapshot.html#/s:10ChatLayout0aB16PositionSnapshotV9indexPath4kind4edge6offsetAC10Foundation05IndexF0V_AA8ItemKindOAC4EdgeO12CoreGraphics7CGFloatVtcfc":{"name":"init(indexPath:kind:edge:offset:)","abstract":"

    Constructor

    ","parent_name":"ChatLayoutPositionSnapshot"},"Structs/ChatLayoutSettings.html#/s:10ChatLayout0aB8SettingsV17estimatedItemSizeSo6CGSizeVSgvp":{"name":"estimatedItemSize","abstract":"

    Estimated item size for ChatLayout. This value will be used as the initial size of the item and the final size","parent_name":"ChatLayoutSettings"},"Structs/ChatLayoutSettings.html#/s:10ChatLayout0aB8SettingsV16interItemSpacing12CoreGraphics7CGFloatVvp":{"name":"interItemSpacing","abstract":"

    Spacing between the items in the section.

    ","parent_name":"ChatLayoutSettings"},"Structs/ChatLayoutSettings.html#/s:10ChatLayout0aB8SettingsV19interSectionSpacing12CoreGraphics7CGFloatVvp":{"name":"interSectionSpacing","abstract":"

    Spacing between the sections.

    ","parent_name":"ChatLayoutSettings"},"Structs/ChatLayoutSettings.html#/s:10ChatLayout0aB8SettingsV16additionalInsetsSo06UIEdgeE0Vvp":{"name":"additionalInsets","abstract":"

    Additional insets for the ChatLayout content.

    ","parent_name":"ChatLayoutSettings"},"Classes/ChatLayoutAttributes.html#/s:10ChatLayout0aB10AttributesC9alignmentAA0A13ItemAlignmentOvp":{"name":"alignment","abstract":"

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

    ","parent_name":"ChatLayoutAttributes"},"Classes/ChatLayoutAttributes.html#/s:10ChatLayout0aB10AttributesC16additionalInsetsSo06UIEdgeE0Vvp":{"name":"additionalInsets","abstract":"

    ChatLayouts additional insets setup using ChatLayoutSettings. Added for convenience.

    ","parent_name":"ChatLayoutAttributes"},"Classes/ChatLayoutAttributes.html#/s:10ChatLayout0aB10AttributesC8viewSizeSo6CGSizeVvp":{"name":"viewSize","abstract":"

    UICollectionViews frame size. Added for convenience.

    ","parent_name":"ChatLayoutAttributes"},"Classes/ChatLayoutAttributes.html#/s:10ChatLayout0aB10AttributesC21adjustedContentInsetsSo06UIEdgeF0Vvp":{"name":"adjustedContentInsets","abstract":"

    UICollectionViews adjusted content insets. Added for convenience.

    ","parent_name":"ChatLayoutAttributes"},"Classes/ChatLayoutAttributes.html#/s:10ChatLayout0aB10AttributesC17visibleBoundsSizeSo6CGSizeVvp":{"name":"visibleBoundsSize","abstract":"

    ChatLayouts visible bounds size excluding adjustedContentInsets. Added for convenience.

    ","parent_name":"ChatLayoutAttributes"},"Classes/ChatLayoutAttributes.html#/s:10ChatLayout0aB10AttributesC11layoutFrameSo6CGRectVvp":{"name":"layoutFrame","abstract":"

    ChatLayouts visible bounds size excluding adjustedContentInsets and additionalInsets. Added for convenience.

    ","parent_name":"ChatLayoutAttributes"},"Classes/ChatLayoutAttributes.html#/c:@M@ChatLayout@objc(cs)ChatLayoutAttributes(im)copyWithZone:":{"name":"copy(with:)","abstract":"

    Returns an exact copy of ChatLayoutAttributes.

    ","parent_name":"ChatLayoutAttributes"},"Classes/ChatLayoutAttributes.html#/c:@M@ChatLayout@objc(cs)ChatLayoutAttributes(im)isEqual:":{"name":"isEqual(_:)","abstract":"

    Returns a Boolean value indicating whether two ChatLayoutAttributes are considered equal.

    ","parent_name":"ChatLayoutAttributes"},"Classes/ChatLayoutAttributes.html#/s:10ChatLayout0aB10AttributesC4kindAA8ItemKindOvp":{"name":"kind","abstract":"

    ItemKind represented by this attributes object.

    ","parent_name":"ChatLayoutAttributes"},"Protocols/ChatLayoutDelegate.html#/s:10ChatLayout0aB8DelegateP19shouldPresentHeader_2atSbA2AC_SitF":{"name":"shouldPresentHeader(_:at:)","abstract":"

    ChatLayout will call this method to ask if it should present the header in the current layout.

    ","parent_name":"ChatLayoutDelegate"},"Protocols/ChatLayoutDelegate.html#/s:10ChatLayout0aB8DelegateP19shouldPresentFooter_2atSbA2AC_SitF":{"name":"shouldPresentFooter(_:at:)","abstract":"

    ChatLayout will call this method to ask if it should present the footer in the current layout.

    ","parent_name":"ChatLayoutDelegate"},"Protocols/ChatLayoutDelegate.html#/s:10ChatLayout0aB8DelegateP11sizeForItem_2of2atAA0F4SizeOA2AC_AA0F4KindO10Foundation9IndexPathVtF":{"name":"sizeForItem(_:of:at:)","abstract":"

    ChatLayout will call this method to ask what size the item should have.

    ","parent_name":"ChatLayoutDelegate"},"Protocols/ChatLayoutDelegate.html#/s:10ChatLayout0aB8DelegateP16alignmentForItem_2of2atAA0aF9AlignmentOA2AC_AA0F4KindO10Foundation9IndexPathVtF":{"name":"alignmentForItem(_:of:at:)","abstract":"

    ChatLayout will call this method to ask what type of alignment the item should have.

    ","parent_name":"ChatLayoutDelegate"},"Protocols/ChatLayoutDelegate.html#/s:10ChatLayout0aB8DelegateP07initialB25AttributesForInsertedItem_2of2at9modifying2onyA2AC_AA0H4KindO10Foundation9IndexPathVAA0abE0CAA07InitialE11RequestTypeOtF":{"name":"initialLayoutAttributesForInsertedItem(_:of:at:modifying:on:)","abstract":"

    Asks the delegate to modify a layout attributes instance so that it represents the initial visual state of an item","parent_name":"ChatLayoutDelegate"},"Protocols/ChatLayoutDelegate.html#/s:10ChatLayout0aB8DelegateP05finalB24AttributesForDeletedItem_2of2at9modifyingyA2AC_AA0H4KindO10Foundation9IndexPathVAA0abE0CtF":{"name":"finalLayoutAttributesForDeletedItem(_:of:at:modifying:)","abstract":"

    Asks the delegate to modify a layout attributes instance so that it represents the final visual state of an item","parent_name":"ChatLayoutDelegate"},"Classes/ChatLayout.html#/s:10ChatLayoutAAC8delegateAA0aB8Delegate_pSgvp":{"name":"delegate","abstract":"

    ChatLayout delegate.

    ","parent_name":"ChatLayout"},"Classes/ChatLayout.html#/s:10ChatLayoutAAC8settingsAA0aB8SettingsVvp":{"name":"settings","abstract":"

    Additional settings for ChatLayout.

    ","parent_name":"ChatLayout"},"Classes/ChatLayout.html#/s:10ChatLayoutAAC39keepContentOffsetAtBottomOnBatchUpdatesSbvp":{"name":"keepContentOffsetAtBottomOnBatchUpdates","abstract":"

    Default UIScrollView behaviour is to keep content offset constant from the top edge. If this flag is set to true","parent_name":"ChatLayout"},"Classes/ChatLayout.html#/s:10ChatLayoutAAC13visibleBoundsSo6CGRectVvp":{"name":"visibleBounds","abstract":"

    Represent the currently visible rectangle.

    ","parent_name":"ChatLayout"},"Classes/ChatLayout.html#/s:10ChatLayoutAAC11layoutFrameSo6CGRectVvp":{"name":"layoutFrame","abstract":"

    Represent the rectangle where all the items are aligned.

    ","parent_name":"ChatLayout"},"Classes/ChatLayout.html#/c:@M@ChatLayout@objc(cs)ChatLayout(py)developmentLayoutDirection":{"name":"developmentLayoutDirection","abstract":"

    The direction of the language you used when designing ChatLayout layout.

    ","parent_name":"ChatLayout"},"Classes/ChatLayout.html#/c:@M@ChatLayout@objc(cs)ChatLayout(py)flipsHorizontallyInOppositeLayoutDirection":{"name":"flipsHorizontallyInOppositeLayoutDirection","abstract":"

    A Boolean value that indicates whether the horizontal coordinate system is automatically flipped at appropriate times.

    ","parent_name":"ChatLayout"},"Classes/ChatLayout.html#/c:@M@ChatLayout@objc(cs)ChatLayout(cpy)layoutAttributesClass":{"name":"layoutAttributesClass","abstract":"

    Custom layoutAttributesClass is ChatLayoutAttributes.

    ","parent_name":"ChatLayout"},"Classes/ChatLayout.html#/c:@M@ChatLayout@objc(cs)ChatLayout(cpy)invalidationContextClass":{"name":"invalidationContextClass","abstract":"

    Custom invalidationContextClass is ChatLayoutInvalidationContext.

    ","parent_name":"ChatLayout"},"Classes/ChatLayout.html#/c:@M@ChatLayout@objc(cs)ChatLayout(py)collectionViewContentSize":{"name":"collectionViewContentSize","abstract":"

    The width and height of the collection view’s contents.

    ","parent_name":"ChatLayout"},"Classes/ChatLayout.html#/s:10ChatLayoutAAC027flipsHorizontallyInOppositeB9DirectionABSb_tcfc":{"name":"init(flipsHorizontallyInOppositeLayoutDirection:)","abstract":"

    Default constructor.

    ","parent_name":"ChatLayout"},"Classes/ChatLayout.html#/c:@M@ChatLayout@objc(cs)ChatLayout(im)initWithCoder:":{"name":"init(coder:)","abstract":"

    Returns an object initialized from data in a given unarchiver.

    ","parent_name":"ChatLayout"},"Classes/ChatLayout.html#/s:10ChatLayoutAAC24getContentOffsetSnapshot4fromAA0ab8PositionF0VSgAF4EdgeO_tF":{"name":"getContentOffsetSnapshot(from:)","abstract":"

    Get current offset of the item closest to the provided edge.

    ","parent_name":"ChatLayout"},"Classes/ChatLayout.html#/s:10ChatLayoutAAC20restoreContentOffset4withyAA0aB16PositionSnapshotV_tF":{"name":"restoreContentOffset(with:)","abstract":"

    Invalidates layout of the UICollectionView and trying to keep the offset of the item provided in ChatLayoutPositionSnapshot

    ","parent_name":"ChatLayout"},"Classes/ChatLayout.html#/c:@M@ChatLayout@objc(cs)ChatLayout(im)prepareLayout":{"name":"prepare()","abstract":"

    Tells the layout object to update the current layout.

    ","parent_name":"ChatLayout"},"Classes/ChatLayout.html#/c:@M@ChatLayout@objc(cs)ChatLayout(im)layoutAttributesForElementsInRect:":{"name":"layoutAttributesForElements(in:)","abstract":"

    Retrieves the layout attributes for all of the cells and views in the specified rectangle.

    ","parent_name":"ChatLayout"},"Classes/ChatLayout.html#/c:@M@ChatLayout@objc(cs)ChatLayout(im)layoutAttributesForItemAtIndexPath:":{"name":"layoutAttributesForItem(at:)","abstract":"

    Retrieves layout information for an item at the specified index path with a corresponding cell.

    ","parent_name":"ChatLayout"},"Classes/ChatLayout.html#/c:@M@ChatLayout@objc(cs)ChatLayout(im)layoutAttributesForSupplementaryViewOfKind:atIndexPath:":{"name":"layoutAttributesForSupplementaryView(ofKind:at:)","abstract":"

    Retrieves the layout attributes for the specified supplementary view.

    ","parent_name":"ChatLayout"},"Classes/ChatLayout.html#/c:@M@ChatLayout@objc(cs)ChatLayout(im)prepareForAnimatedBoundsChange:":{"name":"prepare(forAnimatedBoundsChange:)","abstract":"

    Prepares the layout object for animated changes to the view’s bounds or the insertion or deletion of items.

    ","parent_name":"ChatLayout"},"Classes/ChatLayout.html#/c:@M@ChatLayout@objc(cs)ChatLayout(im)finalizeAnimatedBoundsChange":{"name":"finalizeAnimatedBoundsChange()","abstract":"

    Cleans up after any animated changes to the view’s bounds or after the insertion or deletion of items.

    ","parent_name":"ChatLayout"},"Classes/ChatLayout.html#/c:@M@ChatLayout@objc(cs)ChatLayout(im)shouldInvalidateLayoutForPreferredLayoutAttributes:withOriginalAttributes:":{"name":"shouldInvalidateLayout(forPreferredLayoutAttributes:withOriginalAttributes:)","abstract":"

    Asks the layout object if changes to a self-sizing cell require a layout update.

    ","parent_name":"ChatLayout"},"Classes/ChatLayout.html#/c:@M@ChatLayout@objc(cs)ChatLayout(im)invalidationContextForPreferredLayoutAttributes:withOriginalAttributes:":{"name":"invalidationContext(forPreferredLayoutAttributes:withOriginalAttributes:)","abstract":"

    Retrieves a context object that identifies the portions of the layout that should change in response to dynamic cell changes.

    ","parent_name":"ChatLayout"},"Classes/ChatLayout.html#/c:@M@ChatLayout@objc(cs)ChatLayout(im)shouldInvalidateLayoutForBoundsChange:":{"name":"shouldInvalidateLayout(forBoundsChange:)","abstract":"

    Asks the layout object if the new bounds require a layout update.

    ","parent_name":"ChatLayout"},"Classes/ChatLayout.html#/c:@M@ChatLayout@objc(cs)ChatLayout(im)invalidationContextForBoundsChange:":{"name":"invalidationContext(forBoundsChange:)","abstract":"

    Retrieves a context object that defines the portions of the layout that should change when a bounds change occurs.

    ","parent_name":"ChatLayout"},"Classes/ChatLayout.html#/c:@M@ChatLayout@objc(cs)ChatLayout(im)invalidateLayoutWithContext:":{"name":"invalidateLayout(with:)","abstract":"

    Invalidates the current layout using the information in the provided context object.

    ","parent_name":"ChatLayout"},"Classes/ChatLayout.html#/c:@M@ChatLayout@objc(cs)ChatLayout(im)invalidateLayout":{"name":"invalidateLayout()","abstract":"

    Invalidates the current layout and triggers a layout update.

    ","parent_name":"ChatLayout"},"Classes/ChatLayout.html#/c:@M@ChatLayout@objc(cs)ChatLayout(im)targetContentOffsetForProposedContentOffset:":{"name":"targetContentOffset(forProposedContentOffset:)","abstract":"

    Retrieves the content offset to use after an animated layout update or change.

    ","parent_name":"ChatLayout"},"Classes/ChatLayout.html#/c:@M@ChatLayout@objc(cs)ChatLayout(im)prepareForCollectionViewUpdates:":{"name":"prepare(forCollectionViewUpdates:)","abstract":"

    Notifies the layout object that the contents of the collection view are about to change.

    ","parent_name":"ChatLayout"},"Classes/ChatLayout.html#/c:@M@ChatLayout@objc(cs)ChatLayout(im)finalizeCollectionViewUpdates":{"name":"finalizeCollectionViewUpdates()","abstract":"

    Performs any additional animations or clean up needed during a collection view update.

    ","parent_name":"ChatLayout"},"Classes/ChatLayout.html#/c:@M@ChatLayout@objc(cs)ChatLayout(im)initialLayoutAttributesForAppearingItemAtIndexPath:":{"name":"initialLayoutAttributesForAppearingItem(at:)","abstract":"

    Retrieves the starting layout information for an item being inserted into the collection view.

    ","parent_name":"ChatLayout"},"Classes/ChatLayout.html#/c:@M@ChatLayout@objc(cs)ChatLayout(im)finalLayoutAttributesForDisappearingItemAtIndexPath:":{"name":"finalLayoutAttributesForDisappearingItem(at:)","abstract":"

    Retrieves the final layout information for an item that is about to be removed from the collection view.

    ","parent_name":"ChatLayout"},"Classes/ChatLayout.html#/c:@M@ChatLayout@objc(cs)ChatLayout(im)initialLayoutAttributesForAppearingSupplementaryElementOfKind:atIndexPath:":{"name":"initialLayoutAttributesForAppearingSupplementaryElement(ofKind:at:)","abstract":"

    Retrieves the starting layout information for a supplementary view being inserted into the collection view.

    ","parent_name":"ChatLayout"},"Classes/ChatLayout.html#/c:@M@ChatLayout@objc(cs)ChatLayout(im)finalLayoutAttributesForDisappearingSupplementaryElementOfKind:atIndexPath:":{"name":"finalLayoutAttributesForDisappearingSupplementaryElement(ofKind:at:)","abstract":"

    Retrieves the final layout information for a supplementary view that is about to be removed from the collection view.

    ","parent_name":"ChatLayout"},"Classes/ChatLayout.html":{"name":"ChatLayout","abstract":"

    A collection view layout that can display items in a grid similar to UITableView but aligning them"},"Protocols/ChatLayoutDelegate.html":{"name":"ChatLayoutDelegate","abstract":"

    ChatLayout delegate

    "},"Classes/ChatLayoutAttributes.html":{"name":"ChatLayoutAttributes","abstract":"

    Custom implementation of UICollectionViewLayoutAttributes

    "},"Structs/ChatLayoutSettings.html":{"name":"ChatLayoutSettings","abstract":"

    ChatLayout settings.

    "},"Structs/ChatLayoutPositionSnapshot.html":{"name":"ChatLayoutPositionSnapshot","abstract":"

    Represents content offset position expressed by the specific item and it offset from the top or bottom edge.

    "},"Classes/ChatLayoutInvalidationContext.html":{"name":"ChatLayoutInvalidationContext","abstract":"

    Custom implementation of UICollectionViewLayoutInvalidationContext

    "},"Enums/ItemKind.html":{"name":"ItemKind","abstract":"

    Type of the item supported by ChatLayout

    "},"Enums/ItemSize.html":{"name":"ItemSize","abstract":"

    Represents desired item size.

    "},"Enums/ChatItemAlignment.html":{"name":"ChatItemAlignment","abstract":"

    Represent item alignment in collection view layout

    "},"Core.html":{"name":"Core"},"Extras.html":{"name":"Extras"},"Other%20Guides.html":{"name":"Other Guides","abstract":"

    The following guides are available globally.

    "},"Other%20Enums.html":{"name":"Other Enumerations","abstract":"

    The following enumerations are available globally.

    "}} \ No newline at end of file +{"Enums/InitialAttributesRequestType.html#/s:10ChatLayout28InitialAttributesRequestTypeO7initialyA2CmF":{"name":"initial","abstract":"

    UICollectionView initially asks about the layout of an item.

    ","parent_name":"InitialAttributesRequestType"},"Enums/InitialAttributesRequestType.html#/s:10ChatLayout28InitialAttributesRequestTypeO12invalidationyA2CmF":{"name":"invalidation","abstract":"

    An item is being invalidated.

    ","parent_name":"InitialAttributesRequestType"},"Enums/InitialAttributesRequestType.html":{"name":"InitialAttributesRequestType","abstract":"

    Represents the point in time ChatLayout when chat layout asks about layout attributes modification.

    "},"readme.html":{"name":"README"},"Structs/VoidViewFactory.html#/s:10ChatLayout15VoidViewFactoryV0cD0C":{"name":"VoidView","abstract":"

    Nil view placeholder type.

    ","parent_name":"VoidViewFactory"},"Structs/VoidViewFactory.html#/s:10ChatLayout17StaticViewFactoryP05buildD06within0D0QzSgSo6CGRectV_tFZ":{"name":"buildView(within:)","parent_name":"VoidViewFactory"},"Protocols/StaticViewFactory.html#/s:10ChatLayout17StaticViewFactoryP0D0Qa":{"name":"View","abstract":"

    A type of the view to build.

    ","parent_name":"StaticViewFactory"},"Protocols/StaticViewFactory.html#/s:10ChatLayout17StaticViewFactoryP05buildD06within0D0QzSgSo6CGRectV_tFZ":{"name":"buildView(within:)","abstract":"

    Factory method that will be called by the corresponding container UIView

    ","parent_name":"StaticViewFactory"},"Classes/RoundedCornersContainerView.html#/s:10ChatLayout27RoundedCornersContainerViewC12cornerRadius12CoreGraphics7CGFloatVSgvp":{"name":"cornerRadius","abstract":"

    Corner radius. If not provided then the half of the current view height will be used.

    ","parent_name":"RoundedCornersContainerView"},"Classes/RoundedCornersContainerView.html#/s:10ChatLayout27RoundedCornersContainerViewC06customF0xvp":{"name":"customView","abstract":"

    Contained view.

    ","parent_name":"RoundedCornersContainerView"},"Classes/RoundedCornersContainerView.html#/s:10ChatLayout27RoundedCornersContainerViewC5frameACyxGSo6CGRectV_tcfc":{"name":"init(frame:)","abstract":"

    Initializes and returns a newly allocated view object with the specified frame rectangle.

    ","parent_name":"RoundedCornersContainerView"},"Classes/RoundedCornersContainerView.html#/s:10ChatLayout27RoundedCornersContainerViewC5coderACyxGSgSo7NSCoderC_tcfc":{"name":"init(coder:)","abstract":"

    Returns an object initialized from data in a given unarchiver.

    ","parent_name":"RoundedCornersContainerView"},"Classes/RoundedCornersContainerView.html#/s:10ChatLayout27RoundedCornersContainerViewC14layoutSubviewsyyF":{"name":"layoutSubviews()","abstract":"

    Lays out subviews.

    ","parent_name":"RoundedCornersContainerView"},"Enums/ImageMaskedViewTransformation.html#/s:10ChatLayout29ImageMaskedViewTransformationO4asIsyA2CmF":{"name":"asIs","abstract":"

    Keep image as it is.

    ","parent_name":"ImageMaskedViewTransformation"},"Enums/ImageMaskedViewTransformation.html#/s:10ChatLayout29ImageMaskedViewTransformationO17flippedVerticallyyA2CmF":{"name":"flippedVertically","abstract":"

    Flip image vertically.

    ","parent_name":"ImageMaskedViewTransformation"},"Classes/ImageMaskedView.html#/s:10ChatLayout15ImageMaskedViewC06customE0xvp":{"name":"customView","abstract":"

    Contained view.

    ","parent_name":"ImageMaskedView"},"Classes/ImageMaskedView.html#/s:10ChatLayout15ImageMaskedViewC07maskingC0So7UIImageCSgvp":{"name":"maskingImage","abstract":"

    An Image to be used as a mask for the customView.

    ","parent_name":"ImageMaskedView"},"Classes/ImageMaskedView.html#/s:10ChatLayout15ImageMaskedViewC18maskTransformationAA0cdeG0Ovp":{"name":"maskTransformation","abstract":"

    A transformation to apply to the maskingImage.

    ","parent_name":"ImageMaskedView"},"Classes/ImageMaskedView.html#/s:10ChatLayout15ImageMaskedViewC5frameACyxGSo6CGRectV_tcfc":{"name":"init(frame:)","abstract":"

    Initializes and returns a newly allocated view object with the specified frame rectangle.

    ","parent_name":"ImageMaskedView"},"Classes/ImageMaskedView.html#/s:10ChatLayout15ImageMaskedViewC5coderACyxGSgSo7NSCoderC_tcfc":{"name":"init(coder:)","abstract":"

    Returns an object initialized from data in a given unarchiver.

    ","parent_name":"ImageMaskedView"},"Classes/ImageMaskedView.html#/s:10ChatLayout15ImageMaskedViewC5frameSo6CGRectVvp":{"name":"frame","abstract":"

    The frame rectangle, which describes the view’s location and size in its superview’s coordinate system.

    ","parent_name":"ImageMaskedView"},"Classes/ImageMaskedView.html#/s:10ChatLayout15ImageMaskedViewC6boundsSo6CGRectVvp":{"name":"bounds","abstract":"

    The bounds rectangle, which describes the view’s location and size in its own coordinate system.

    ","parent_name":"ImageMaskedView"},"Classes/EdgeAligningView/Edge.html#/s:10ChatLayout16EdgeAligningViewC0C0O3topyAEyx_GAGmSo6UIViewCRbzlF":{"name":"top","abstract":"

    Top edge

    ","parent_name":"Edge"},"Classes/EdgeAligningView/Edge.html#/s:10ChatLayout16EdgeAligningViewC0C0O7leadingyAEyx_GAGmSo6UIViewCRbzlF":{"name":"leading","abstract":"

    Leading edge

    ","parent_name":"Edge"},"Classes/EdgeAligningView/Edge.html#/s:10ChatLayout16EdgeAligningViewC0C0O8trailingyAEyx_GAGmSo6UIViewCRbzlF":{"name":"trailing","abstract":"

    Trailing edge

    ","parent_name":"Edge"},"Classes/EdgeAligningView/Edge.html#/s:10ChatLayout16EdgeAligningViewC0C0O6bottomyAEyx_GAGmSo6UIViewCRbzlF":{"name":"bottom","abstract":"

    Bottom edge

    ","parent_name":"Edge"},"Classes/EdgeAligningView/Edge.html":{"name":"Edge","abstract":"

    Represents an edge of EdgeAligningView

    ","parent_name":"EdgeAligningView"},"Classes/EdgeAligningView.html#/s:10ChatLayout16EdgeAligningViewC13flexibleEdgesShyAC0C0Oyx_GGvp":{"name":"flexibleEdges","abstract":"

    Set of edge constraints to be set as loose.

    ","parent_name":"EdgeAligningView"},"Classes/EdgeAligningView.html#/s:10ChatLayout16EdgeAligningViewC06customE0xvp":{"name":"customView","abstract":"

    Contained view.

    ","parent_name":"EdgeAligningView"},"Classes/EdgeAligningView.html#/s:10ChatLayout16EdgeAligningViewC4with13flexibleEdgesACyxGx_ShyAC0C0Oyx_GGtcfc":{"name":"init(with:flexibleEdges:)","abstract":"

    Initializes and returns a newly allocated EdgeAligningView

    ","parent_name":"EdgeAligningView"},"Classes/EdgeAligningView.html#/s:10ChatLayout16EdgeAligningViewC5frameACyxGSo6CGRectV_tcfc":{"name":"init(frame:)","abstract":"

    Initializes and returns a newly allocated view object with the specified frame rectangle.

    ","parent_name":"EdgeAligningView"},"Enums/CellLayoutContainerViewAlignment.html#/s:10ChatLayout04CellB22ContainerViewAlignmentO4fillyA2CmF":{"name":"fill","abstract":"

    Align the top and bottom edges of horizontally stacked items tightly to the container.

    ","parent_name":"CellLayoutContainerViewAlignment"},"Enums/CellLayoutContainerViewAlignment.html#/s:10ChatLayout04CellB22ContainerViewAlignmentO3topyA2CmF":{"name":"top","abstract":"

    Align the top edges of horizontally stacked items tightly to the container.

    ","parent_name":"CellLayoutContainerViewAlignment"},"Enums/CellLayoutContainerViewAlignment.html#/s:10ChatLayout04CellB22ContainerViewAlignmentO6centeryA2CmF":{"name":"center","abstract":"

    Center items in a horizontal stack vertically.

    ","parent_name":"CellLayoutContainerViewAlignment"},"Enums/CellLayoutContainerViewAlignment.html#/s:10ChatLayout04CellB22ContainerViewAlignmentO6bottomyA2CmF":{"name":"bottom","abstract":"

    Align the bottom edges of horizontally stacked items tightly to the container.

    ","parent_name":"CellLayoutContainerViewAlignment"},"Classes/CellLayoutContainerView.html#/s:10ChatLayout04CellB13ContainerViewC07leadingE00E0QzSgvp":{"name":"leadingView","abstract":"

    Leading accessory view.

    ","parent_name":"CellLayoutContainerView"},"Classes/CellLayoutContainerView.html#/s:10ChatLayout04CellB13ContainerViewC06customE0q_vp":{"name":"customView","abstract":"

    Main view.

    ","parent_name":"CellLayoutContainerView"},"Classes/CellLayoutContainerView.html#/s:10ChatLayout04CellB13ContainerViewC08trailingE00E0Qy0_Sgvp":{"name":"trailingView","abstract":"

    Trailing accessory view.

    ","parent_name":"CellLayoutContainerView"},"Classes/CellLayoutContainerView.html#/s:10ChatLayout04CellB13ContainerViewC9alignmentAA0cbdE9AlignmentOvp":{"name":"alignment","abstract":"

    Alignment that corresponds to UIStackView.Alignment

    ","parent_name":"CellLayoutContainerView"},"Classes/CellLayoutContainerView.html#/s:10ChatLayout04CellB13ContainerViewC7spacing12CoreGraphics7CGFloatVvp":{"name":"spacing","abstract":"

    Default spacing between the views.

    ","parent_name":"CellLayoutContainerView"},"Classes/CellLayoutContainerView.html#/s:10ChatLayout04CellB13ContainerViewC20customLeadingSpacing12CoreGraphics7CGFloatVvp":{"name":"customLeadingSpacing","abstract":"

    Custom spacing between the leading and main views.

    ","parent_name":"CellLayoutContainerView"},"Classes/CellLayoutContainerView.html#/s:10ChatLayout04CellB13ContainerViewC21customTrailingSpacing12CoreGraphics7CGFloatVvp":{"name":"customTrailingSpacing","abstract":"

    Custom spacing between the main and trailing views.

    ","parent_name":"CellLayoutContainerView"},"Classes/CellLayoutContainerView.html#/s:10ChatLayout04CellB13ContainerViewC5frameACyxq_q0_GSo6CGRectV_tcfc":{"name":"init(frame:)","abstract":"

    Initializes and returns a newly allocated view object with the specified frame rectangle.

    ","parent_name":"CellLayoutContainerView"},"Classes/CellLayoutContainerView.html#/s:10ChatLayout04CellB13ContainerViewC5coderACyxq_q0_GSgSo7NSCoderC_tcfc":{"name":"init(coder:)","abstract":"

    Returns an object initialized from data in a given unarchiver.

    ","parent_name":"CellLayoutContainerView"},"Classes/MessageContainerView.html#/s:10ChatLayout20MessageContainerViewC09accessoryE00E0QzSgvp":{"name":"accessoryView","abstract":"

    An accessory view.

    ","parent_name":"MessageContainerView"},"Classes/MessageContainerView.html#/s:10ChatLayout20MessageContainerViewC06customE0q_vp":{"name":"customView","abstract":"

    Main view.

    ","parent_name":"MessageContainerView"},"Classes/MessageContainerView.html#/s:10ChatLayout20MessageContainerViewC9alignmentAA0A13ItemAlignmentOvp":{"name":"alignment","abstract":"

    An alignment of the contained views within the MessageContainerView,

    ","parent_name":"MessageContainerView"},"Classes/MessageContainerView.html#/s:10ChatLayout20MessageContainerViewC5frameACyxq_GSo6CGRectV_tcfc":{"name":"init(frame:)","abstract":"

    Initializes and returns a newly allocated view object with the specified frame rectangle.

    ","parent_name":"MessageContainerView"},"Classes/MessageContainerView.html#/s:10ChatLayout20MessageContainerViewC5coderACyxq_GSgSo7NSCoderC_tcfc":{"name":"init(coder:)","abstract":"

    Returns an object initialized from data in a given unarchiver.

    ","parent_name":"MessageContainerView"},"Classes/ContainerCollectionReusableView.html#/s:10ChatLayout31ContainerCollectionReusableViewC15reuseIdentifierSSvpZ":{"name":"reuseIdentifier","abstract":"

    Default reuse identifier is set with the class name.

    ","parent_name":"ContainerCollectionReusableView"},"Classes/ContainerCollectionReusableView.html#/s:10ChatLayout31ContainerCollectionReusableViewC06customF0xvp":{"name":"customView","abstract":"

    Contained view.

    ","parent_name":"ContainerCollectionReusableView"},"Classes/ContainerCollectionReusableView.html#/s:10ChatLayout31ContainerCollectionReusableViewC8delegateAA0cdF12CellDelegate_pSgvp":{"name":"delegate","abstract":"

    An instance of ContainerCollectionViewCellDelegate

    ","parent_name":"ContainerCollectionReusableView"},"Classes/ContainerCollectionReusableView.html#/s:10ChatLayout31ContainerCollectionReusableViewC15prepareForReuseyyF":{"name":"prepareForReuse()","abstract":"

    Performs any clean up necessary to prepare the view for use again.

    ","parent_name":"ContainerCollectionReusableView"},"Classes/ContainerCollectionReusableView.html#/s:10ChatLayout31ContainerCollectionReusableViewC09preferredB17AttributesFittingySo012UICollectionfbH0CAFF":{"name":"preferredLayoutAttributesFitting(_:)","abstract":"

    Gives the cell a chance to modify the attributes provided by the layout object.

    ","parent_name":"ContainerCollectionReusableView"},"Classes/ContainerCollectionReusableView.html#/s:10ChatLayout31ContainerCollectionReusableViewC5applyyySo012UICollectionfB10AttributesCF":{"name":"apply(_:)","abstract":"

    Applies the specified layout attributes to the view.

    ","parent_name":"ContainerCollectionReusableView"},"Protocols/ContainerCollectionViewCellDelegate.html#/s:10ChatLayout35ContainerCollectionViewCellDelegateP15prepareForReuseyyF":{"name":"prepareForReuse()","abstract":"

    Perform any clean up necessary to prepare the view for use again.

    ","parent_name":"ContainerCollectionViewCellDelegate"},"Protocols/ContainerCollectionViewCellDelegate.html#/s:10ChatLayout35ContainerCollectionViewCellDelegateP09preferredB17AttributesFittingyAA0abI0CSgAFF":{"name":"preferredLayoutAttributesFitting(_:)","abstract":"

    Allows to override the call of ContainerCollectionViewCell/ContainerCollectionReusableView","parent_name":"ContainerCollectionViewCellDelegate"},"Protocols/ContainerCollectionViewCellDelegate.html#/s:10ChatLayout35ContainerCollectionViewCellDelegateP015modifyPreferredB17AttributesFittingyyAA0abJ0CF":{"name":"modifyPreferredLayoutAttributesFitting(_:)","abstract":"

    Allows to additionally modify ChatLayoutAttributes after the UICollectionReusableView.preferredLayoutAttributesFitting(...)","parent_name":"ContainerCollectionViewCellDelegate"},"Protocols/ContainerCollectionViewCellDelegate.html#/s:10ChatLayout35ContainerCollectionViewCellDelegateP5applyyyAA0aB10AttributesCF":{"name":"apply(_:)","abstract":"

    Apply the specified layout attributes to the view.","parent_name":"ContainerCollectionViewCellDelegate"},"Classes/ContainerCollectionViewCell.html#/s:10ChatLayout27ContainerCollectionViewCellC15reuseIdentifierSSvpZ":{"name":"reuseIdentifier","abstract":"

    Default reuse identifier is set with the class name.

    ","parent_name":"ContainerCollectionViewCell"},"Classes/ContainerCollectionViewCell.html#/s:10ChatLayout27ContainerCollectionViewCellC06customE0xvp":{"name":"customView","abstract":"

    Contained view.

    ","parent_name":"ContainerCollectionViewCell"},"Classes/ContainerCollectionViewCell.html#/s:10ChatLayout27ContainerCollectionViewCellC8delegateAA0cdeF8Delegate_pSgvp":{"name":"delegate","abstract":"

    An instance of ContainerCollectionViewCellDelegate

    ","parent_name":"ContainerCollectionViewCell"},"Classes/ContainerCollectionViewCell.html#/s:10ChatLayout27ContainerCollectionViewCellC15prepareForReuseyyF":{"name":"prepareForReuse()","abstract":"

    Performs any clean up necessary to prepare the view for use again.

    ","parent_name":"ContainerCollectionViewCell"},"Classes/ContainerCollectionViewCell.html#/s:10ChatLayout27ContainerCollectionViewCellC09preferredB17AttributesFittingySo012UICollectionebH0CAFF":{"name":"preferredLayoutAttributesFitting(_:)","abstract":"

    Gives the cell a chance to modify the attributes provided by the layout object.

    ","parent_name":"ContainerCollectionViewCell"},"Classes/ContainerCollectionViewCell.html#/s:10ChatLayout27ContainerCollectionViewCellC5applyyySo012UICollectioneB10AttributesCF":{"name":"apply(_:)","abstract":"

    Applies the specified layout attributes to the view.

    ","parent_name":"ContainerCollectionViewCell"},"Classes/ContainerCollectionViewCell.html":{"name":"ContainerCollectionViewCell","abstract":"

    A container UICollectionViewCell that constraints its contained view to its margins.

    "},"Protocols/ContainerCollectionViewCellDelegate.html":{"name":"ContainerCollectionViewCellDelegate","abstract":"

    A delegate of ContainerCollectionViewCell/ContainerCollectionReusableView should implement this methods if"},"Classes/ContainerCollectionReusableView.html":{"name":"ContainerCollectionReusableView","abstract":"

    A container UICollectionReusableView that constraints its contained view to its margins.

    "},"Classes/MessageContainerView.html":{"name":"MessageContainerView","abstract":"

    A container view that helps to layout the message view and its accessory

    "},"Classes/CellLayoutContainerView.html":{"name":"CellLayoutContainerView","abstract":"

    CellLayoutContainerView is a container view that helps to arrange the views in a horizontal cell-alike layout with an optional LeadingAccessory first,"},"Enums/CellLayoutContainerViewAlignment.html":{"name":"CellLayoutContainerViewAlignment","abstract":"

    Alignment for CellLayoutContainerView that corresponds to UIStackView.Alignment

    "},"Classes/EdgeAligningView.html":{"name":"EdgeAligningView","abstract":"

    Container view that allows its CustomView to have lose connection to the margins of the container according to the"},"Classes/ImageMaskedView.html":{"name":"ImageMaskedView","abstract":"

    A container view that masks its contained view with an image provided.

    "},"Enums/ImageMaskedViewTransformation.html":{"name":"ImageMaskedViewTransformation","abstract":"

    A transformation to apply to the ImageMaskedView.maskingImage

    "},"Classes/RoundedCornersContainerView.html":{"name":"RoundedCornersContainerView","abstract":"

    A container view that keeps its CustomView masked with the corner radius provided.

    "},"Protocols/StaticViewFactory.html":{"name":"StaticViewFactory","abstract":"

    A factory that creates optional contained UIViews should conform to this protocol.

    "},"Structs/VoidViewFactory.html":{"name":"VoidViewFactory","abstract":"

    Use this factory to specify that this view should not be build and should be equal to nil within the container.

    "},"Enums/ChatItemAlignment.html#/s:10ChatLayout0A13ItemAlignmentO7leadingyA2CmF":{"name":"leading","abstract":"

    Should be aligned at the leading edge of the layout. That includes all the additional content offsets.

    ","parent_name":"ChatItemAlignment"},"Enums/ChatItemAlignment.html#/s:10ChatLayout0A13ItemAlignmentO6centeryA2CmF":{"name":"center","abstract":"

    Should be aligned at the center of the layout.

    ","parent_name":"ChatItemAlignment"},"Enums/ChatItemAlignment.html#/s:10ChatLayout0A13ItemAlignmentO8trailingyA2CmF":{"name":"trailing","abstract":"

    Should be aligned at the trailing edge of the layout.

    ","parent_name":"ChatItemAlignment"},"Enums/ChatItemAlignment.html#/s:10ChatLayout0A13ItemAlignmentO9fullWidthyA2CmF":{"name":"fullWidth","abstract":"

    Should be aligned using the full width of the available content width.

    ","parent_name":"ChatItemAlignment"},"Enums/ItemSize.html#/s:10ChatLayout8ItemSizeO4autoyA2CmF":{"name":"auto","abstract":"

    Item size should be fully calculated by the ChatLayout. Initial estimated size will be taken from ChatLayoutSettings.

    ","parent_name":"ItemSize"},"Enums/ItemSize.html#/s:10ChatLayout8ItemSizeO9estimatedyACSo6CGSizeVcACmF":{"name":"estimated(_:)","abstract":"

    Item size should be fully calculated by the ChatLayout. Initial estimated size should be taken from the value provided.

    ","parent_name":"ItemSize"},"Enums/ItemSize.html#/s:10ChatLayout8ItemSizeO5exactyACSo6CGSizeVcACmF":{"name":"exact(_:)","abstract":"

    Item size should be exactly equal to the value provided.

    ","parent_name":"ItemSize"},"Enums/ItemKind.html#/s:10ChatLayout8ItemKindO6headeryA2CmF":{"name":"header","abstract":"

    Header item

    ","parent_name":"ItemKind"},"Enums/ItemKind.html#/s:10ChatLayout8ItemKindO4cellyA2CmF":{"name":"cell","abstract":"

    Cell item

    ","parent_name":"ItemKind"},"Enums/ItemKind.html#/s:10ChatLayout8ItemKindO6footeryA2CmF":{"name":"footer","abstract":"

    Footer item

    ","parent_name":"ItemKind"},"Enums/ItemKind.html#/s:10ChatLayout8ItemKindO015isSupplementaryC0Sbvp":{"name":"isSupplementaryItem","abstract":"

    Returns: true if this ItemKind is equal to ItemKind.header or ItemKind.footer

    ","parent_name":"ItemKind"},"Classes/ChatLayoutInvalidationContext.html#/s:10ChatLayout0aB19InvalidationContextC010invalidateB7MetricsSbvp":{"name":"invalidateLayoutMetrics","abstract":"

    Indicates whether to recompute the positions and sizes of the items based on the current","parent_name":"ChatLayoutInvalidationContext"},"Structs/ChatLayoutPositionSnapshot/Edge.html#/s:10ChatLayout0aB16PositionSnapshotV4EdgeO3topyA2EmF":{"name":"top","abstract":"

    Top edge of the UICollectionView

    ","parent_name":"Edge"},"Structs/ChatLayoutPositionSnapshot/Edge.html#/s:10ChatLayout0aB16PositionSnapshotV4EdgeO6bottomyA2EmF":{"name":"bottom","abstract":"

    Bottom edge of the UICollectionView

    ","parent_name":"Edge"},"Structs/ChatLayoutPositionSnapshot/Edge.html":{"name":"Edge","abstract":"

    Represents the edge.

    ","parent_name":"ChatLayoutPositionSnapshot"},"Structs/ChatLayoutPositionSnapshot.html#/s:10ChatLayout0aB16PositionSnapshotV9indexPath10Foundation05IndexF0Vvp":{"name":"indexPath","abstract":"

    Item’s IndexPath

    ","parent_name":"ChatLayoutPositionSnapshot"},"Structs/ChatLayoutPositionSnapshot.html#/s:10ChatLayout0aB16PositionSnapshotV4kindAA8ItemKindOvp":{"name":"kind","abstract":"

    Kind of item at the indexPath

    ","parent_name":"ChatLayoutPositionSnapshot"},"Structs/ChatLayoutPositionSnapshot.html#/s:10ChatLayout0aB16PositionSnapshotV4edgeAC4EdgeOvp":{"name":"edge","abstract":"

    The edge of the offset.

    ","parent_name":"ChatLayoutPositionSnapshot"},"Structs/ChatLayoutPositionSnapshot.html#/s:10ChatLayout0aB16PositionSnapshotV6offset12CoreGraphics7CGFloatVvp":{"name":"offset","abstract":"

    The offset from the edge.

    ","parent_name":"ChatLayoutPositionSnapshot"},"Structs/ChatLayoutPositionSnapshot.html#/s:10ChatLayout0aB16PositionSnapshotV9indexPath4kind4edge6offsetAC10Foundation05IndexF0V_AA8ItemKindOAC4EdgeO12CoreGraphics7CGFloatVtcfc":{"name":"init(indexPath:kind:edge:offset:)","abstract":"

    Constructor

    ","parent_name":"ChatLayoutPositionSnapshot"},"Structs/ChatLayoutSettings.html#/s:10ChatLayout0aB8SettingsV17estimatedItemSizeSo6CGSizeVSgvp":{"name":"estimatedItemSize","abstract":"

    Estimated item size for ChatLayout. This value will be used as the initial size of the item and the final size","parent_name":"ChatLayoutSettings"},"Structs/ChatLayoutSettings.html#/s:10ChatLayout0aB8SettingsV16interItemSpacing12CoreGraphics7CGFloatVvp":{"name":"interItemSpacing","abstract":"

    Spacing between the items in the section.

    ","parent_name":"ChatLayoutSettings"},"Structs/ChatLayoutSettings.html#/s:10ChatLayout0aB8SettingsV19interSectionSpacing12CoreGraphics7CGFloatVvp":{"name":"interSectionSpacing","abstract":"

    Spacing between the sections.

    ","parent_name":"ChatLayoutSettings"},"Structs/ChatLayoutSettings.html#/s:10ChatLayout0aB8SettingsV16additionalInsetsSo06UIEdgeE0Vvp":{"name":"additionalInsets","abstract":"

    Additional insets for the ChatLayout content.

    ","parent_name":"ChatLayoutSettings"},"Classes/ChatLayoutAttributes.html#/s:10ChatLayout0aB10AttributesC9alignmentAA0A13ItemAlignmentOvp":{"name":"alignment","abstract":"

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

    ","parent_name":"ChatLayoutAttributes"},"Classes/ChatLayoutAttributes.html#/s:10ChatLayout0aB10AttributesC16additionalInsetsSo06UIEdgeE0Vvp":{"name":"additionalInsets","abstract":"

    ChatLayouts additional insets setup using ChatLayoutSettings. Added for convenience.

    ","parent_name":"ChatLayoutAttributes"},"Classes/ChatLayoutAttributes.html#/s:10ChatLayout0aB10AttributesC8viewSizeSo6CGSizeVvp":{"name":"viewSize","abstract":"

    UICollectionViews frame size. Added for convenience.

    ","parent_name":"ChatLayoutAttributes"},"Classes/ChatLayoutAttributes.html#/s:10ChatLayout0aB10AttributesC21adjustedContentInsetsSo06UIEdgeF0Vvp":{"name":"adjustedContentInsets","abstract":"

    UICollectionViews adjusted content insets. Added for convenience.

    ","parent_name":"ChatLayoutAttributes"},"Classes/ChatLayoutAttributes.html#/s:10ChatLayout0aB10AttributesC17visibleBoundsSizeSo6CGSizeVvp":{"name":"visibleBoundsSize","abstract":"

    ChatLayouts visible bounds size excluding adjustedContentInsets. Added for convenience.

    ","parent_name":"ChatLayoutAttributes"},"Classes/ChatLayoutAttributes.html#/s:10ChatLayout0aB10AttributesC11layoutFrameSo6CGRectVvp":{"name":"layoutFrame","abstract":"

    ChatLayouts visible bounds size excluding adjustedContentInsets and additionalInsets. Added for convenience.

    ","parent_name":"ChatLayoutAttributes"},"Classes/ChatLayoutAttributes.html#/c:@M@ChatLayout@objc(cs)ChatLayoutAttributes(im)copyWithZone:":{"name":"copy(with:)","abstract":"

    Returns an exact copy of ChatLayoutAttributes.

    ","parent_name":"ChatLayoutAttributes"},"Classes/ChatLayoutAttributes.html#/c:@M@ChatLayout@objc(cs)ChatLayoutAttributes(im)isEqual:":{"name":"isEqual(_:)","abstract":"

    Returns a Boolean value indicating whether two ChatLayoutAttributes are considered equal.

    ","parent_name":"ChatLayoutAttributes"},"Classes/ChatLayoutAttributes.html#/s:10ChatLayout0aB10AttributesC4kindAA8ItemKindOvp":{"name":"kind","abstract":"

    ItemKind represented by this attributes object.

    ","parent_name":"ChatLayoutAttributes"},"Protocols/ChatLayoutDelegate.html#/s:10ChatLayout0aB8DelegateP19shouldPresentHeader_2atSbA2AC_SitF":{"name":"shouldPresentHeader(_:at:)","abstract":"

    ChatLayout will call this method to ask if it should present the header in the current layout.

    ","parent_name":"ChatLayoutDelegate"},"Protocols/ChatLayoutDelegate.html#/s:10ChatLayout0aB8DelegateP19shouldPresentFooter_2atSbA2AC_SitF":{"name":"shouldPresentFooter(_:at:)","abstract":"

    ChatLayout will call this method to ask if it should present the footer in the current layout.

    ","parent_name":"ChatLayoutDelegate"},"Protocols/ChatLayoutDelegate.html#/s:10ChatLayout0aB8DelegateP11sizeForItem_2of2atAA0F4SizeOA2AC_AA0F4KindO10Foundation9IndexPathVtF":{"name":"sizeForItem(_:of:at:)","abstract":"

    ChatLayout will call this method to ask what size the item should have.

    ","parent_name":"ChatLayoutDelegate"},"Protocols/ChatLayoutDelegate.html#/s:10ChatLayout0aB8DelegateP16alignmentForItem_2of2atAA0aF9AlignmentOA2AC_AA0F4KindO10Foundation9IndexPathVtF":{"name":"alignmentForItem(_:of:at:)","abstract":"

    ChatLayout will call this method to ask what type of alignment the item should have.

    ","parent_name":"ChatLayoutDelegate"},"Protocols/ChatLayoutDelegate.html#/s:10ChatLayout0aB8DelegateP07initialB25AttributesForInsertedItem_2of2at9modifying2onyA2AC_AA0H4KindO10Foundation9IndexPathVAA0abE0CAA07InitialE11RequestTypeOtF":{"name":"initialLayoutAttributesForInsertedItem(_:of:at:modifying:on:)","abstract":"

    Asks the delegate to modify a layout attributes instance so that it represents the initial visual state of an item","parent_name":"ChatLayoutDelegate"},"Protocols/ChatLayoutDelegate.html#/s:10ChatLayout0aB8DelegateP05finalB24AttributesForDeletedItem_2of2at9modifyingyA2AC_AA0H4KindO10Foundation9IndexPathVAA0abE0CtF":{"name":"finalLayoutAttributesForDeletedItem(_:of:at:modifying:)","abstract":"

    Asks the delegate to modify a layout attributes instance so that it represents the final visual state of an item","parent_name":"ChatLayoutDelegate"},"Classes/ChatLayout.html#/s:10ChatLayoutAAC8delegateAA0aB8Delegate_pSgvp":{"name":"delegate","abstract":"

    ChatLayout delegate.

    ","parent_name":"ChatLayout"},"Classes/ChatLayout.html#/s:10ChatLayoutAAC8settingsAA0aB8SettingsVvp":{"name":"settings","abstract":"

    Additional settings for ChatLayout.

    ","parent_name":"ChatLayout"},"Classes/ChatLayout.html#/s:10ChatLayoutAAC39keepContentOffsetAtBottomOnBatchUpdatesSbvp":{"name":"keepContentOffsetAtBottomOnBatchUpdates","abstract":"

    Default UIScrollView behaviour is to keep content offset constant from the top edge. If this flag is set to true","parent_name":"ChatLayout"},"Classes/ChatLayout.html#/s:10ChatLayoutAAC13visibleBoundsSo6CGRectVvp":{"name":"visibleBounds","abstract":"

    Represent the currently visible rectangle.

    ","parent_name":"ChatLayout"},"Classes/ChatLayout.html#/s:10ChatLayoutAAC11layoutFrameSo6CGRectVvp":{"name":"layoutFrame","abstract":"

    Represent the rectangle where all the items are aligned.

    ","parent_name":"ChatLayout"},"Classes/ChatLayout.html#/c:@M@ChatLayout@objc(cs)ChatLayout(py)developmentLayoutDirection":{"name":"developmentLayoutDirection","abstract":"

    The direction of the language you used when designing ChatLayout layout.

    ","parent_name":"ChatLayout"},"Classes/ChatLayout.html#/c:@M@ChatLayout@objc(cs)ChatLayout(py)flipsHorizontallyInOppositeLayoutDirection":{"name":"flipsHorizontallyInOppositeLayoutDirection","abstract":"

    A Boolean value that indicates whether the horizontal coordinate system is automatically flipped at appropriate times.

    ","parent_name":"ChatLayout"},"Classes/ChatLayout.html#/c:@M@ChatLayout@objc(cs)ChatLayout(cpy)layoutAttributesClass":{"name":"layoutAttributesClass","abstract":"

    Custom layoutAttributesClass is ChatLayoutAttributes.

    ","parent_name":"ChatLayout"},"Classes/ChatLayout.html#/c:@M@ChatLayout@objc(cs)ChatLayout(cpy)invalidationContextClass":{"name":"invalidationContextClass","abstract":"

    Custom invalidationContextClass is ChatLayoutInvalidationContext.

    ","parent_name":"ChatLayout"},"Classes/ChatLayout.html#/c:@M@ChatLayout@objc(cs)ChatLayout(py)collectionViewContentSize":{"name":"collectionViewContentSize","abstract":"

    The width and height of the collection view’s contents.

    ","parent_name":"ChatLayout"},"Classes/ChatLayout.html#/s:10ChatLayoutAAC16enableIOS15_1FixSbvp":{"name":"enableIOS15_1Fix","abstract":"

    There is an issue in IOS 15.1 that proposed content offset is being ignored by the UICollectionView when user is scrolling.","parent_name":"ChatLayout"},"Classes/ChatLayout.html#/s:10ChatLayoutAAC027flipsHorizontallyInOppositeB9DirectionABSb_tcfc":{"name":"init(flipsHorizontallyInOppositeLayoutDirection:)","abstract":"

    Default constructor.

    ","parent_name":"ChatLayout"},"Classes/ChatLayout.html#/c:@M@ChatLayout@objc(cs)ChatLayout(im)initWithCoder:":{"name":"init(coder:)","abstract":"

    Returns an object initialized from data in a given unarchiver.

    ","parent_name":"ChatLayout"},"Classes/ChatLayout.html#/s:10ChatLayoutAAC24getContentOffsetSnapshot4fromAA0ab8PositionF0VSgAF4EdgeO_tF":{"name":"getContentOffsetSnapshot(from:)","abstract":"

    Get current offset of the item closest to the provided edge.

    ","parent_name":"ChatLayout"},"Classes/ChatLayout.html#/s:10ChatLayoutAAC20restoreContentOffset4withyAA0aB16PositionSnapshotV_tF":{"name":"restoreContentOffset(with:)","abstract":"

    Invalidates layout of the UICollectionView and trying to keep the offset of the item provided in ChatLayoutPositionSnapshot

    ","parent_name":"ChatLayout"},"Classes/ChatLayout.html#/c:@M@ChatLayout@objc(cs)ChatLayout(im)prepareLayout":{"name":"prepare()","abstract":"

    Tells the layout object to update the current layout.

    ","parent_name":"ChatLayout"},"Classes/ChatLayout.html#/c:@M@ChatLayout@objc(cs)ChatLayout(im)layoutAttributesForElementsInRect:":{"name":"layoutAttributesForElements(in:)","abstract":"

    Retrieves the layout attributes for all of the cells and views in the specified rectangle.

    ","parent_name":"ChatLayout"},"Classes/ChatLayout.html#/c:@M@ChatLayout@objc(cs)ChatLayout(im)layoutAttributesForItemAtIndexPath:":{"name":"layoutAttributesForItem(at:)","abstract":"

    Retrieves layout information for an item at the specified index path with a corresponding cell.

    ","parent_name":"ChatLayout"},"Classes/ChatLayout.html#/c:@M@ChatLayout@objc(cs)ChatLayout(im)layoutAttributesForSupplementaryViewOfKind:atIndexPath:":{"name":"layoutAttributesForSupplementaryView(ofKind:at:)","abstract":"

    Retrieves the layout attributes for the specified supplementary view.

    ","parent_name":"ChatLayout"},"Classes/ChatLayout.html#/c:@M@ChatLayout@objc(cs)ChatLayout(im)prepareForAnimatedBoundsChange:":{"name":"prepare(forAnimatedBoundsChange:)","abstract":"

    Prepares the layout object for animated changes to the view’s bounds or the insertion or deletion of items.

    ","parent_name":"ChatLayout"},"Classes/ChatLayout.html#/c:@M@ChatLayout@objc(cs)ChatLayout(im)finalizeAnimatedBoundsChange":{"name":"finalizeAnimatedBoundsChange()","abstract":"

    Cleans up after any animated changes to the view’s bounds or after the insertion or deletion of items.

    ","parent_name":"ChatLayout"},"Classes/ChatLayout.html#/c:@M@ChatLayout@objc(cs)ChatLayout(im)shouldInvalidateLayoutForPreferredLayoutAttributes:withOriginalAttributes:":{"name":"shouldInvalidateLayout(forPreferredLayoutAttributes:withOriginalAttributes:)","abstract":"

    Asks the layout object if changes to a self-sizing cell require a layout update.

    ","parent_name":"ChatLayout"},"Classes/ChatLayout.html#/c:@M@ChatLayout@objc(cs)ChatLayout(im)invalidationContextForPreferredLayoutAttributes:withOriginalAttributes:":{"name":"invalidationContext(forPreferredLayoutAttributes:withOriginalAttributes:)","abstract":"

    Retrieves a context object that identifies the portions of the layout that should change in response to dynamic cell changes.

    ","parent_name":"ChatLayout"},"Classes/ChatLayout.html#/c:@M@ChatLayout@objc(cs)ChatLayout(im)shouldInvalidateLayoutForBoundsChange:":{"name":"shouldInvalidateLayout(forBoundsChange:)","abstract":"

    Asks the layout object if the new bounds require a layout update.

    ","parent_name":"ChatLayout"},"Classes/ChatLayout.html#/c:@M@ChatLayout@objc(cs)ChatLayout(im)invalidationContextForBoundsChange:":{"name":"invalidationContext(forBoundsChange:)","abstract":"

    Retrieves a context object that defines the portions of the layout that should change when a bounds change occurs.

    ","parent_name":"ChatLayout"},"Classes/ChatLayout.html#/c:@M@ChatLayout@objc(cs)ChatLayout(im)invalidateLayoutWithContext:":{"name":"invalidateLayout(with:)","abstract":"

    Invalidates the current layout using the information in the provided context object.

    ","parent_name":"ChatLayout"},"Classes/ChatLayout.html#/c:@M@ChatLayout@objc(cs)ChatLayout(im)invalidateLayout":{"name":"invalidateLayout()","abstract":"

    Invalidates the current layout and triggers a layout update.

    ","parent_name":"ChatLayout"},"Classes/ChatLayout.html#/c:@M@ChatLayout@objc(cs)ChatLayout(im)targetContentOffsetForProposedContentOffset:":{"name":"targetContentOffset(forProposedContentOffset:)","abstract":"

    Retrieves the content offset to use after an animated layout update or change.

    ","parent_name":"ChatLayout"},"Classes/ChatLayout.html#/c:@M@ChatLayout@objc(cs)ChatLayout(im)prepareForCollectionViewUpdates:":{"name":"prepare(forCollectionViewUpdates:)","abstract":"

    Notifies the layout object that the contents of the collection view are about to change.

    ","parent_name":"ChatLayout"},"Classes/ChatLayout.html#/c:@M@ChatLayout@objc(cs)ChatLayout(im)finalizeCollectionViewUpdates":{"name":"finalizeCollectionViewUpdates()","abstract":"

    Performs any additional animations or clean up needed during a collection view update.

    ","parent_name":"ChatLayout"},"Classes/ChatLayout.html#/c:@M@ChatLayout@objc(cs)ChatLayout(im)initialLayoutAttributesForAppearingItemAtIndexPath:":{"name":"initialLayoutAttributesForAppearingItem(at:)","abstract":"

    Retrieves the starting layout information for an item being inserted into the collection view.

    ","parent_name":"ChatLayout"},"Classes/ChatLayout.html#/c:@M@ChatLayout@objc(cs)ChatLayout(im)finalLayoutAttributesForDisappearingItemAtIndexPath:":{"name":"finalLayoutAttributesForDisappearingItem(at:)","abstract":"

    Retrieves the final layout information for an item that is about to be removed from the collection view.

    ","parent_name":"ChatLayout"},"Classes/ChatLayout.html#/c:@M@ChatLayout@objc(cs)ChatLayout(im)initialLayoutAttributesForAppearingSupplementaryElementOfKind:atIndexPath:":{"name":"initialLayoutAttributesForAppearingSupplementaryElement(ofKind:at:)","abstract":"

    Retrieves the starting layout information for a supplementary view being inserted into the collection view.

    ","parent_name":"ChatLayout"},"Classes/ChatLayout.html#/c:@M@ChatLayout@objc(cs)ChatLayout(im)finalLayoutAttributesForDisappearingSupplementaryElementOfKind:atIndexPath:":{"name":"finalLayoutAttributesForDisappearingSupplementaryElement(ofKind:at:)","abstract":"

    Retrieves the final layout information for a supplementary view that is about to be removed from the collection view.

    ","parent_name":"ChatLayout"},"Classes/ChatLayout.html":{"name":"ChatLayout","abstract":"

    A collection view layout that can display items in a grid similar to UITableView but aligning them"},"Protocols/ChatLayoutDelegate.html":{"name":"ChatLayoutDelegate","abstract":"

    ChatLayout delegate

    "},"Classes/ChatLayoutAttributes.html":{"name":"ChatLayoutAttributes","abstract":"

    Custom implementation of UICollectionViewLayoutAttributes

    "},"Structs/ChatLayoutSettings.html":{"name":"ChatLayoutSettings","abstract":"

    ChatLayout settings.

    "},"Structs/ChatLayoutPositionSnapshot.html":{"name":"ChatLayoutPositionSnapshot","abstract":"

    Represents content offset position expressed by the specific item and it offset from the top or bottom edge.

    "},"Classes/ChatLayoutInvalidationContext.html":{"name":"ChatLayoutInvalidationContext","abstract":"

    Custom implementation of UICollectionViewLayoutInvalidationContext

    "},"Enums/ItemKind.html":{"name":"ItemKind","abstract":"

    Type of the item supported by ChatLayout

    "},"Enums/ItemSize.html":{"name":"ItemSize","abstract":"

    Represents desired item size.

    "},"Enums/ChatItemAlignment.html":{"name":"ChatItemAlignment","abstract":"

    Represent item alignment in collection view layout

    "},"Core.html":{"name":"Core"},"Extras.html":{"name":"Extras"},"Other%20Guides.html":{"name":"Other Guides","abstract":"

    The following guides are available globally.

    "},"Other%20Enums.html":{"name":"Other Enumerations","abstract":"

    The following enumerations are available globally.

    "}} \ No newline at end of file