Change Log

All notable changes to this project will be documented in this file. Tabman adheres to Semantic Versioning.

3.x Releases

2.x Releases

1.x Releases

0.x Releases


3.2.0

Released on 2024-04-14

Updated

  • Downgraded SPM Swift requirement to Swift 5.7 (Xcode 14).

3.1.0

Released on 2024-04-06

Added

  • Support for Xcode 15.
  • Support for Privacy Manifests.

Updated

  • Pageboy now requires iOS 12 or tvOS 12.

3.0.2

Released on 2023-07-16

Fixed

  • #615 Issue where Tabman components would not respond to tintColor changes correctly.

3.0.1

Released on 2022-11-08

Fixed

3.0.0

Released on 2022-11-02

Added

  • Support for Xcode 14.

Updated


2.13.0

Released on 2022-08-20

Updated

Fixed

  • #601 Issue where AnimateableLabel would use the incorrect textColor when overriding the userInterfaceStyle.

2.12.0

Released on 2022-01-15

Added

Fixed

  • #584 Buttons incorrectly setting selected state on interactive scroll.

2.11.1

Released on 2021-03-30

Fixed

2.11.0

Released on 2021-03-08

Added

  • Support for Dynamic Type to TMLabelBarButton with adjustsFontForContentSizeCategory.
  • Support for Dynamic Type to TMTabItemBarButton with adjustsFontForContentSizeCategory.

2.10.0

Released on 2021-01-23

Updated

  • #553 leftAccessoryView and rightAccessoryView are now included in accessibility elements in TMBarView.

2.9.1

Released on 2020-07-20

Fixed

  • Crash when calling TMBarButton.allTargets due to TMBarButtonInteractionController not being hashable.

2.9.0

Released on 2020-05-04

Updated

  • Dropped support for legacy Swift (4.x) versions.
  • Pageboy to 3.6.

2.8.2

Released on 2020-04-25

Fixed

  • Layout issues when using Right-to-left languages via semanticContentAttribute.

2.8.1

Released on 2020-04-21

Fixed

  • Mixed language errors caused by Tabman.h header in Swift PM.

2.8.0

Released on 2020-01-12

Added

  • verticalAlignment to TMLabelBarButton to allow for button contents to be vertically aligned.

Fixed

  • Issue where TMLabelBarButton would fail to resize correctly when using custom fonts.

2.7.0

Released on 2019-12-23

Added

Updated

  • Removed AutoInsetter as a dependency.
  • Child insetting logic now utilises additionalSafeAreaInsets only on iOS 11 and above.

Fixed

  • #449 Infinite loop that could be caused by recursive layout calls.
  • #487 Issue where child contents could be requested to layout before being added to the view hierarchy.
  • #478 Issue where bar could fail to inset children when created dynamically for the page view controller.

2.6.3

Released on 2019-10-06

Updated

2.6.2

Released on 2019-10-03

Fixed

  • Center aligned TMBarLayout not working for trailing buttons.
  • Center aligned TMBarLayout having an incorrect offset when using a non-zero contentInset.

2.6.1

Released on 2019-09-11

Fixed

  • Missing imports that could cause a Swift PM build to fail.

2.6.0

Released on 2019-09-11

Added

  • Support for Swift Package Manager in Xcode 11.
  • Support for Dark Mode in iOS 13.
  • contentInset to TMBadgeView allowing for custom badge content insets.

Fixed

  • Issue where accessing safeAreaLayoutGuide could cause a crash on Jailbroken devices.
  • Issue where constraints in TMTabItemBarButton would not correctly be applied on iOS 13.
  • Issue where a TMSystemBar could fail to correctly extend background edges into system areas.

2.5.0

Released on 2019-08-03

Added


2.4.3

Released on 2019-07-13

Updated

  • Add support for multiple Swift versions to Podspec.

2.4.2

Released on 2019-04-25

Fixed

  • Incorrect Swift version in podspec, now 4.0.

2.4.1

Released on 2019-04-20

Fixed

  • Build issues with iOS 9.

2.4.0

Released on 2019-04-19

Added

Updated


2.3.0

Released on 2019-03-31

Updated

  • Added support for Swift 5.
  • Added support for Xcode 10.2.
  • Improved Swift 4 compatibility.

2.2.1

Released on 2019-03-24

Updated

  • AutoInsetter to 1.6 - with numerous fixes and improvements for view controller insetting.

2.2.0

Released on 2019-03-14

Added

Updated


2.1.4

Released on 2019-02-23

Fixed

  • #383 Child insetting issues on iOS 10.

2.1.3

Released on 2019-01-14

Fixed

  • #366 Incorrect indicator positioning when using a Right-to-Left language.

Updated

2.1.2

Released on 2018-12-29

Updated

Fixed

2.1.1

Released on 2018-12-24

Updated

Fixed

  • #358 Fix typo of TMBarDataSource in README.

2.1.0

Released on 2018-12-19

Added

Updated


2.0.0

Released on 2018-12-02

Basically, everything has changed.

Added

  • Redesigned and completely re-engineered bar layout system.
  • Support for dynamic page insertion & deletion via Pageboy 3.
  • Support for multiple bars, including dynamic addition and removal.
  • Simplified, more powerful customization via constrained types.
  • Ability to add accessory views to bars.
  • Support for UIKit components such as UINavigationItem to bar items.
  • Dramatically simplified creation and integration of custom components.

Updated

  • Improved animation & transitioning engine.
  • All views are now exposed via public API.

Fixed

  • Numerous issues with automatic insetting of child contents.
  • A whole lot of performance fixes.
  • Numerous memory problems.

1.10.2

Released on 2018-10-04

Fixed

  • Cleaned up some potential memory issues in Bar reloading.

1.10.1

Released on 2018-10-03

Fixed

  • #331 App Store submission issues when integrating via Carthage.

1.10.0

Released on 2018-09-20

Updated

  • Migrated to use Swift 4.2.

1.9.2

Released on 2018-08-02

Fixed

  • #314 Scrolling Button Bar does not re-layout on rotation for .fill Item Distribution

1.9.1

Released on 2018-06-20

Fixed

  • #296 Visual bug when scrolling between bar buttons with different font styles.

1.9.0

Released on 2018-06-05

Added

  • #291 Fill Item Distribution for Scrolling Button Bar.

1.8.2

Released on 2018-04-18

Fixed

  • #276 Animation issue where whole bar would crossfade during an interactive transition.

1.8.1

Released on 2018-04-12

Updated

  • Improved animation when interactively transitioning between items with a selectedFont.
  • selectedFont now defaults to font if no custom value is set when used in button bars.

Fixed

  • #273 ssue where selectedTextFont would incorrectly be used for every item in a button bar when not selected.

1.8.0

Released on 2018-04-06

Updated

  • Now using Pageboy 2.5 with fixes to scroll detection and reliability.

1.7.0

Released on 2018-04-02

Added

  • .bottomSeparator configuration to TabmanBar.Appearance.
  • Ability to customize separator height via Appearance.bottomSeparator.height.
  • Ability to specifiy a selected font for bar items via Appearance.text.selectedFont.

Updated

  • Deprecated Appearance.State.shouldHideWhenSingleItem.
  • Deprecated Appearance.Style.bottomSeparatorColor.
  • Deprecated Appearance.Layout.bottomSeparatorEdgeInsets.

1.6.0

Released on 2018-02-23

Updated

  • Now using Pageboy 2.4 with improved transitioning support.

1.5.2

Released on 2018-02-09

Updated

  • Improved compatiblity with Carthage.
    • Carthage now builds ‘Tabman’ scheme and target.
    • by msaps.

1.5.1

Released on 2018-02-05

Updated

  • Updated AutoInsetter to 1.2 for ‘extension safe API’ compatibility.

1.5.0

Released on 2018-01-30

Updated

  • Tabman now uses AutoInsetter.
  • Auto Insetting now takes account of relative subview positioning.

Fixed

  • #236 TableView insets not adjusted properly for table with height constraint.

1.4.0

Released on 2018-01-13

Updated

  • #215 Add default crossfade transition to custom indicators.
  • #229 Update project workspace to use CocoaPods for dependency management.
  • #231 Update styling for project.

1.3.0

Released on 2018-01-10

Added

  • #227 parentTabmanBarInsets property to UIViewController.

Updated


1.2.0

Released on 2017-12-20

Added

Updated

  • #192 Deprecated automaticallyAdjustsChildScrollViewInsets.
  • #191 Disable auto-insetting when the bar is embedded or attached.
  • #208 Remove temporary fix for iOS 11.2 safe area change.

Fixed

  • #190 Prevent bar background extending when external.

1.1.4

Released on 2017-12-20

Updated

  • Versions of Tabman 1.1.x are now tied to Pageboy 2.1.x.

1.1.3

Released on 2017-12-12

Fixed

  • #208 Auto-Inset issues on iOS 11.2 with bottom safe area.

1.1.2

Released on 2017-12-05

Fixed

  • #202 TabmanBar item views don’t conform to safe area.

1.1.1

Released on 2017-11-28

Fixed

  • #194 UIScrollView contentOffset reset when going back to Tabman VC.

1.1.0

Released on 2017-11-23

Added

  • #187 Behaviors engine to TabmanBar.
  • #186 Ability to hide TabmanBar with only one item.
  • #177 Improve TabmanBar accessibility.

Updated

  • Refactored auto insetting logic to AutoInsetEngine.
  • Improved auto insetting reliability.

1.0.8

Released on 2017-11-15

Added

  • #176 Support for edge insets to bottom separator view.

Fixed

  • Removed unnecessary debugging logging.

1.0.7

Released on 2017-11-15

Added

  • Support for additionalSafeAreaInsets for child view controllers.

1.0.6

Released on 2017-11-12

Updated

  • Renamed safeAreaInsets to safeArea in TabmanBar.Insets.

Fixed

  • Fixed issue where bar background would not extend correctly when using .preferred bar location.
  • Fixed issue where child view controller contents would not get inset correctly on iPhone X.

1.0.5

Released on 2017-10-23

Added

  • Added support for UICollectionViewController and automatic insetting.

Fixed

  • #109 Fixed automatic insetting behavior when using a UITableViewController.

1.0.4

Released on 2017-10-22

Added

Updated

  • Deprecated embedBar(inView view: UIView) in TabmanViewController.
  • Add improved error handling to bar embedding and attachment operations.

1.0.3

Released on 2017-10-11

Added

  • #154 Support for extending bar background on iPhone X function areas.
  • #148 imageRenderingMode to TabmanBar.Appearance.Style.

1.0.2

Released on 2017-09-28

Added

  • safeAreaInsets to TabmanBar.Insets.

Updated

  • Deprecated topLayoutGuide in TabmanBar.Insets.
  • Deprecated bottomLayoutGuide in TabmanBar.Insets.

Fixed

  • #146 Incorrect layout with automatic insetting on iOS 11 and iPhone X.

1.0.1

Released on 2017-09-18

Added

  • context property to TabmanBar.Item.

Updated

  • Updated example project styling and improved iPhone X support.

1.0.0

Released on 2017-09-14

Added


0.8.3

Released on 2017-09-05

Added

  • #135 Ability to extend background edge insets under system components.
  • #138 extendBackgroundEdgeInsets property to TabmanBar.Appearance.

0.8.2

Released on 2017-08-25

Fixed

  • #132 Crash when using UITableViewController with auto-insetting enabled.
  • Resolved deprecation warnings when using latest Xcode 9 beta.

0.8.1

Released on 2017-08-04

Fixed

  • #121 Aligment issues when using a single bar item with .buttonBar.

0.8.0

Released on 2017-07-25

Updated

  • Update Pageboy dependency to 1.4.x.

0.7.3

Released on 2017-07-13

Updated

  • #108 Remove lazy variables to fix Carthage linker errors.
  • Rename TabmanBarBackgroundView to TabmanBar.BackgroundView.
  • Rename TabmanSeparator to Separator.
  • Rename TabmanCircularView to CircularView.
  • Rename TabmanChevronView to ChevronView.

Fixed

  • #115 Fix text font not being applied to block tab bar.

0.7.2

Released on 2017-07-10

Fixed

  • #111 Fix issue with bottomLayoutGuide inset when using UITableViewController.
  • #80 Fix issue where automatic insetting would incorrectly be re-applied when hidesBarOnSwipe was enabled on UINavigationController.

0.7.1

Released on 2017-06-30

Added

  • #106 Make TabmanBar.Item compatible with both an image and title.

Fixed

  • #109 Fix issue where UITableViewController would not automatically inset correctly.

0.7.0

Released on 2017-06-24

Added

  • #96 Added compatibility support for iOS 8.

0.6.2

Released on 2017-06-19.

Added

  • #77 Support for Right-To-Left languages.
    • Tabman & Pageboy both now fully support localization for right-to-left language layout.

Updated

  • Pageboy to 1.2

Fixed

  • #91 Issue where title labels in TabmanBar could appear to be using different font sizes due to incorrect layout compression.

0.6.1

Released on 2017-06-18.

Added

  • minimumItemWidth to Appearance.Layout.
    • Allows for specification of the minimum width an item in a scrolling TabmanBar must be for display.
    • By AlexZd
  • Item typealias for TabmanBar.Item to TabmanViewController.

Updated

  • Pageboy to 1.1.2.

0.6.0

Released on 2017-06-14.

Added

  • TabmanBarDelegate delegate property to TabmanBar.Config.
  • Ability to dictate whether a bar item should be selected.
    • Available via bar(shouldSelectItemAt index: Int) -> Bool in TabmanBarDelegate.
    • By Fábio Bernardo.
  • Ability to hide TabmanBar if only one item is provided.
    • Available via shouldHideWhenSingleItem in TabmanBar.Appearance.State.
    • By Diogo Brito

Updated

  • Refactored TabmanBarItem to TabmanBar.Item.
  • Refactored TabmanBarConfig to TabmanBar.Config.

Fixed

  • Fixed issue where useRoundedCorners would not work on line indicators.
  • Fixed issue where bar would incorrectly layout with superview layout changes.

0.5.3

Released on 2017-06-09.

Added

  • Added itemSelected(at index: Int) function to TabmanBar.
  • Added construct(in contentView: UIView, for items: [TabmanBarItem]) function to TabmanBarLifecycle.
  • Added add(indicator: TabmanIndicator, to contentView: UIView) function to TabmanBarLifecycle.

Removed

  • Removed constructTabBar(items: [TabmanBarItem]) from TabmanBarLifecycle.
  • Removed addIndicatorToBar(indicator: TabmanIndicator) from TabmanBarLifecycle.

0.5.2

Released on 2017-06-07.

Updated

  • Updated Pageboy to v1.1.0.

0.5.1

Released on 2017-05-24.

Added

  • itemDistribution property to TabmanBar.Appearance.Layout.
    • Allows for centre aligning items within a bar. #71

Updated

  • Improvements to documentation.
  • Minor refactoring to TabmanBar.Appearance.

0.5.0

Released on 2017-05-14.

Added

  • Added Carthage support #30.
  • Added automatic child view controller insetting behaviour #43.
    • This will automatically inset any UIScrollView content that is present in child view controllers to appear correctly with TabmanBar.
    • Enabled by default with the automaticallyAdjustsChildScrollViewInsets property on TabmanViewController.
  • Added requiredInsets TabmanBar.Insets object to TabmanBarConfig.
    • Provides inset values for all components required to manually inset content correctly for a TabmanBar.
    • Replaces requiredContentInset.

Updated

  • Added a fresh coat of paint.
  • Deprecated requiredContentInset on TabmanBarConfig.
  • Move initialisation logic to viewDidLoad from loadView.

0.4.8

Released on 2017-04-20.

Updated

  • Pod releases are now locked to a specific version of Pageboy.

Fixed

  • Fixed deprecation warning for PageboyViewController.PageIndex API update.
  • #58 Fixed missing delegate function from PageboyViewControllerDelegate API update.

0.4.7

Released on 2017-04-11.

Updated

  • Updated dependencies.

Fixed

  • #51 Fixed issue with using custom font on bar styles other than .scrollingButtonBar.

0.4.6

Released on 2017-04-06.

Updated

  • Updated podspec to use latest versions of Pageboy which contain numerous fixes.

0.4.5

Released on 2017-04-05.

Fixed

  • #50 Fixed memory retain issue with TabmanBarConfig .delegate property.

0.4.4

Released on 2017-04-04.

Updated

  • New artwork and colours for the repo & example app.

Fixed

  • Fix issue where requiredContentInset property on TabmanViewController.bar would consistently have incorrect values.
    • Partial fix for #42 - automatic insetting for child view controllers still under development.

0.4.3

Released on 2017-03-30.

Added

  • Additional tests to improve coverage.

Updated

  • Updated interaction.isScrollEnabled to be true by default in TabmanBar.Appearance.

Fixed

  • Fixed issue where internally managed TabmanBar could potentially be below other subviews.

0.4.2

Released on 2017-03-28.

Added

  • New .buttonBar style, which features a static button bar with equally distributed spacing.

Updated

  • Refactored old .buttonBar style to .scrollingButtonBar. This is the new default style.
  • A few of the previously public properties on various TabmanBar styles are now internal. These should always be updated via the TabmanBar.Appearance object.

Fixed

  • Issues where certain appearance properties were not always adhered to correctly.
  • Issues with compresses / bounces properties in TabmanBar.Appearance. New behaviour simply takes bounces as precedence and ignores compresses.
  • A few minor layout issues that would appear when setting custom layout appearance properties.

0.4.1

Released on 2017-03-23.

Added

  • Bottom separator view to TabmanBar.
    • This can be customised via style.bottomSeparatorColor in TabmanBar.Appearance.
  • Compressing indicator transition style.
    • Indicator will compress when over scrolling at the end of page ranges rather than bouncing.
    • Enabled via indicator.compresses in TabmanBar.Appearance.
  • Ability to embed internally managed TabmanBar in an external view to TabmanViewController.
    • Accessible via embedBar(inView:) and disembedBar().

Updated

  • Renamed .none to .clear in TabmanBarBackgroundView.BackgroundStyle.

0.4.0

Released on 2017-03-20.

Initial Tabman release - A powerful paging view controller with indicator bar for iOS