Change Log

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

2.x Releases

1.x Releases

0.x Releases


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