FUIHierarchyItemTableViewCell
@MainActor
open class FUIHierarchyItemTableViewCell : FUIObjectBaseTableViewCell<FUIHierarchyItemView>
FUIHierarchyItemTableViewCell is a table view UI component which extends FUIObjectBaseTableViewCell for showing a collection item’s business object content and hierarchy information (e.g. number of children in its next level). It is identical to FUIHierarchyCollectionItem in terms of the configuration of inner view and hierarchy indicator.
Initialization and Configuration:
To use FUIHierarchyItemTableViewCell, it should be dequeued from hierarchyView and returned in the data source method in FUIHierarchyViewDataSource.
Example of setting an FUIHierarchyCollectionItem in a table view:
cell.title.text = "Business Object Title"
cell.subtitle.text = "Business Object Subtitle"
cell.footnote.text = "Business Object Footnote"
cell.hierarchyIndicator.title.text = "128"
cell.status.text = "Business Object Status"
cell.accessoryType = .disclosureIndicator
Settings of Hierarchy Indicator:
Similar to FUIHierarchyCollectionItem, hierarchy indicator is used to display related hierarchy information. To customize a different text in hierarchy indicator, set the text for title property of the cell’s FUIHierarchyIndicator.
cell.hierarchyIndicator.title.text = "My Title"
Likewise, hierarchy indicator by default is displayed in a vertical aligned multi-line mode in FUIHierarchyCollectionItem. To display in single-line mode, configure the isMultiline property of the cell’s FUIHierarchyIndicator.
cell.hierarchyIndicator.isMultiline = false
Layout of Hierarchy Indicator in Table View:
The default width of the space showing hierarchy indicator is 38px in multi-line mode and 74px in multi-line mode. So the table view controller consuming the FUIHierarchyItemTableViewCell should enforce this minimum layout margin based on its display mode. The recommended technique for managing this is to set the table view controller’s additionalSafeAreaInsets property accordingly.
override func viewDidLoad() {
self.tableView.showsVerticalScrollIndicator = false
self.tableView.insetsContentViewsToSafeArea = false
if UIView.userInterfaceLayoutDirection(for: self.view.semanticContentAttribute) == .leftToRight {
self.additionalSafeAreaInsets.right = 38
} else {
self.additionalSafeAreaInsets.left = 38
}
}
Default Styling:
Depending on the selection state, the tint color and button style of hierarchy icon, the font size of the title text, and the cell’s background color will be updated automatically.
Customize Selection Behavior:
Similar to FUIHierarchyCollectionItem, selection behavior can be customized by conforming to FUIHierarchyViewDelegate and then implementing the hierarchyButtonTappedForItemWith method.
AccessoryView, AccessoryType, and EditingAccessoryView
Standard UITableViewCell properties like accessoryView, accessoryType, and editingAccessoryView are supported.
Theming
Supported class paths:
fdlFUIBaseCollectionViewCell {}
fdlFUIBaseCollectionViewCell_title {}
fdlFUIBaseCollectionViewCell_subtitle {}
fdlFUIBaseCollectionViewCell_footnote {}
fdlFUIBaseCollectionViewCell_detailImageView {}
Please refer to FUIHierarchyItemView and FUIHierarchyIndicator documentation for all supported attributes.
-
An
FUIHierarchyIndicatorinstance for the cell. Includes a tappable expand button, and title text property. Provides for closure-based tap handling, and equivalent tap handling in FUIHierarchyViewDelegate.Declaration
Swift
@MainActor public let hierarchyIndicator: FUIHierarchyIndicator -
Set
directionalLayoutMargins.trailinghas no effect since hierarchy table view cell managers trailing margin for correctly positioning hierarchy indicator.Declaration
Swift
@MainActor open override var directionalLayoutMargins: NSDirectionalEdgeInsets { get set } -
Declaration
Swift
@MainActor override open func setSelected(_ selected: Bool, animated: Bool) -
An array of the accessibility elements in the view
Declaration
Swift
@MainActor open override var accessibilityElements: [Any]? { get set }