TMBarLayout
@MainActor
open class TMBarLayout : TMBarViewFocusProvider, TMTransitionStyleable
TMBarLayout dictates the way that BarButtons are displayed within a bar, handling layout and population.
Attention: You should not directly use BarLayout, but instead inherit from it or use an available subclass such as TMHorizontalBarLayout.
-
How to display the contents of the layout.
.intrinsic: The layout and contents will be intrinsically sized, taking up as much space as required..fit: The layout and it’s contents will be restricted to fitting within the bounds of the bar.
Declaration
Swift
public enum ContentMode -
How to align the layout in the parent.
.leading: The layout will be aligned from the leading edge of the parent..center: The layout will be aligned from the center of the parent..centerDistributed: The layout will be aligned so that its entire contents is centered in the parent if possible..trailing: The layout will be aligned from the trailing edge of the parent.
Declaration
Swift
public enum Alignment
-
Container view which contains actual contents
Declaration
Swift
@MainActor public let view: UIView -
The content mode in which to display the content in the layout.
Options:
.intrinsic: The layout and contents will be intrinsically sized, taking up as much space as required..fit: The layout and it’s contents will be restricted to fitting within the bounds of the bar.
By default this is set to
.intrinsicDeclaration
Swift
@MainActor public var contentMode: ContentMode { get set } -
Inset to apply to the outside of the layout.
Declaration
Swift
@MainActor open var contentInset: UIEdgeInsets { get set } -
Transition style for updating layout parameters, such as scroll offset.
Declaration
Swift
@MainActor public var transitionStyle: TMTransitionStyle { get set } -
How to align the layout in the bar.
Options:
.leading: The layout will be aligned from the leading edge of the parent..center: The layout will be aligned from the center of the parent..trailing: The layout will be aligned from the trailing edge of the parent.
Declaration
Swift
@MainActor public var alignment: Alignment { get set }
-
Layout the
BarLayout.Declaration
Swift
@MainActor open func layout(in view: UIView)Parameters
viewThe view to use as the root of the layout.
-
Insert new bar buttons into the layout from a specified index.
Declaration
Swift
@MainActor open func insert(buttons: [TMBarButton], at index: Int)Parameters
buttonsThe buttons to insert.
indexThe index to start inserting the buttons at.
-
Remove existing bar buttons from the layout.
Declaration
Swift
@MainActor open func remove(buttons: [TMBarButton])Parameters
buttonsThe buttons to remove.
-
Calculate the
focusRectfor the current position and capacity.This rect defines the area of the layout that should currently be highlighted for the selected bar button.
Declaration
Swift
@MainActor open func focusArea(for position: CGFloat, capacity: Int) -> CGRectParameters
positionCurrent position to display.
capacityCapacity of the bar (items).
Return Value
Calculated focus rect.
-
Inform that the layout requires a reload of its contents.
Note
This will only be applied if the layout has previously had content provided.Declaration
Swift
@MainActor open func setNeedsReload() -
Layout that won’t display any visible bar buttons.
The indicator will be visible and equally distributed in the layout width.
Declaration
Swift
@MainActor public final class None : TMBarLayout
View on GitHub
Install in Dash
TMBarLayout Class Reference