FUIHierarchyItemTableViewCell

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 FUIHierarchyIndicator instance 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

    public let hierarchyIndicator: FUIHierarchyIndicator
  • Set directionalLayoutMargins.trailing has no effect since hierarchy table view cell managers trailing margin for correctly positioning hierarchy indicator.

    Declaration

    Swift

    open override var directionalLayoutMargins: NSDirectionalEdgeInsets { get set }
  • Declaration

    Swift

    override open func setSelected(_ selected: Bool, animated: Bool)