All notable changes to this project will be documented in this file.
Tabman adheres to Semantic Versioning.
2.13.xReleases - 2.13.02.12.xReleases - 2.12.02.11.xReleases - 2.11.0 | 2.11.12.10.xReleases - 2.10.02.9.xReleases - 2.9.0 | 2.9.12.8.xReleases - 2.8.0 | 2.8.1 | 2.8.22.7.xReleases - 2.7.02.6.xReleases - 2.6.0 | 2.6.1 | 2.6.2 | 2.6.32.5.xReleases - 2.5.02.4.xReleases - 2.4.0 | 2.4.1 | 2.4.2 | 2.4.32.3.xReleases - 2.3.02.2.xReleases - 2.2.0 | 2.2.12.1.xReleases - 2.1.0 | 2.1.1 | 2.1.2 | 2.1.3 | 2.1.42.0.xReleases - 2.0.0
1.10.xReleases - 1.10.0 | 1.10.1 | 1.1.0.21.9.xReleases - 1.9.0 | 1.9.1 | 1.9.21.8.xReleases - 1.8.0 | 1.8.1 | 1.8.21.7.xReleases - 1.7.01.6.xReleases - 1.6.01.5.xReleases - 1.5.0 | 1.5.1 | 1.5.21.4.xReleases - 1.4.01.3.xReleases - 1.3.01.2.xReleases - 1.2.01.1.xReleases - 1.1.0 | 1.1.1 | 1.1.2 | 1.1.3 | 1.1.41.0.xReleases - 1.0.0 | 1.0.1 | 1.0.2 | 1.0.3 | 1.0.4 | 1.0.5 | 1.0.6 | 1.0.7 | 1.0.8
0.8.xReleases - 0.8.0 | 0.8.1 | 0.8.2 | 0.8.30.7.xReleases - 0.7.0 | 0.7.1 | 0.7.2 | 0.7.30.6.xReleases - 0.6.0 | 0.6.1 | 0.6.20.5.xReleases - 0.5.0 | 0.5.1 | 0.5.2 | 0.5.30.4.xReleases - 0.4.0 | 0.4.1 | 0.4.2 | 0.4.3 | 0.4.4 | 0.4.5 | 0.4.6 | 0.4.7 | 0.4.8
Released on 2026-04-28
- Pageboy to 5.0.2.
Released on 2025-12-28
- Support for Swift 6.
- Tabman now requires iOS 14 or above.
Released on 2024-04-14
- Downgraded SPM Swift requirement to Swift 5.7 (Xcode 14).
Released on 2024-04-06
- Support for Xcode 15.
- Support for Privacy Manifests.
- Tabman now requires iOS 12.
Released on 2023-07-16
Released on 2022-11-08
- #605 Issue where
TMBarView.backgroundViewwould not be visible due to broken layout constraints.
Released on 2022-11-02
- Support for Xcode 14.
- Tabman now requires iOS 11 or newer.
delegateis nowunavailableonTabmanViewController.
Released on 2022-08-20
- Pageboy to 3.7.0.
- #601 Issue where
AnimateableLabelwould use the incorrecttextColorwhen overriding theuserInterfaceStyle.- by Gyuni
Released on 2022-01-15
- #580 Support for
selectedImagetoTMTabItemBarButtonandTMBarItem.
- #584 Buttons incorrectly setting selected state on interactive scroll.
- by nikitapankiv
Released on 2021-03-30
- #564 Incorrect separator width in
TMConstrainedHorizontalBarLayout.
Released on 2021-03-08
- Support for Dynamic Type to
TMLabelBarButtonwithadjustsFontForContentSizeCategory. - Support for Dynamic Type to
TMTabItemBarButtonwithadjustsFontForContentSizeCategory.
Released on 2021-01-23
- #553
leftAccessoryViewandrightAccessoryVieware now included in accessibility elements inTMBarView.- by e-sung
Released on 2020-07-20
- Crash when calling
TMBarButton.allTargetsdue toTMBarButtonInteractionControllernot being hashable.- by SuperTango
Released on 2020-05-04
- Dropped support for legacy Swift (4.x) versions.
- Pageboy to 3.6.
Released on 2020-04-25
- Layout issues when using Right-to-left languages via
semanticContentAttribute.
Released on 2020-04-21
- Mixed language errors caused by
Tabman.hheader in Swift PM.- by filiplazov
Released on 2020-01-12
verticalAlignmenttoTMLabelBarButtonto allow for button contents to be vertically aligned.
- Issue where
TMLabelBarButtonwould fail to resize correctly when using custom fonts.
Released on 2019-12-23
centerDistributedtoTMBarLayout.Alignmentto center align all bar buttons.- by wwdc14.
- Removed AutoInsetter as a dependency.
- Child insetting logic now utilises
additionalSafeAreaInsetsonly on iOS 11 and above.
- #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.
Released on 2019-10-06
- Pageboy to 3.5.0.
Released on 2019-10-03
- Center aligned
TMBarLayoutnot working for trailing buttons.- by townsendeb.
- Center aligned
TMBarLayouthaving an incorrect offset when using a non-zerocontentInset.
Released on 2019-09-11
- Missing imports that could cause a Swift PM build to fail.
Released on 2019-09-11
- Support for Swift Package Manager in Xcode 11.
- Support for Dark Mode in iOS 13.
contentInsettoTMBadgeViewallowing for custom badge content insets.
- Issue where accessing
safeAreaLayoutGuidecould cause a crash on Jailbroken devices.- by nghiaphunguyen.
- Issue where constraints in
TMTabItemBarButtonwould not correctly be applied on iOS 13.- by forceunwrap.
- Issue where a
TMSystemBarcould fail to correctly extend background edges into system areas.
Released on 2019-08-03
- Support for vertical separators between bar buttons to
TMHorizontalBarLayoutviashowSeparators. separatorColortoTMHorizontalBarLayout.separatorInsettoTMHorizontalBarLayout.separatorWidthtoTMHorizontalBarLayout.
Released on 2019-07-13
- Add support for multiple Swift versions to Podspec.
Released on 2019-04-25
- Incorrect Swift version in podspec, now
4.0.
Released on 2019-04-20
- Build issues with iOS 9.
Released on 2019-04-19
- Ability to override automatic inset values via
calculateRequiredInsets()onTabmanViewController.- by WingedDoom
- #404
adjustsAlphaOnSelectiontoTMBarButton. - #338 Ability to hide / show the bar with
TMHidingBar. - #403 Accessibility support to
TMBarView.- by iv-mexx
- #403 Accessibility support to
TMBarItem.- by iv-mexx
- #403 Accessibility support to
TMBarButton.- by iv-mexx
- #321
navigationItem(item:)toTabmanViewController.BarLocationwith support for embedding aTMBarin aUINavigationBar.
- Make
TMBarItemopen. - Make
.titleopen onTMBarItem. - Make
.imageopen onTMBarItem. - Make
.badgeValueopen onTMBarItem. - Make
.itemsopenonTMBarView. - Make
.dataSourceopenonTMBarView. - Make
.delegateopenonTMBarView. - Make
.scrollModeopenonTMBarView. - Make
.fadesContentEdgesopenonTMBarView. - Make
.spacingopenonTMBarView. - #396 Improved layout adaptability of
TMTabItemBarButtonon iPad and in landscape. - #404
TMBarButtonno longer performs default fade transition inupdate(for selectionState:)
Released on 2019-03-31
- Added support for Swift 5.
- Added support for Xcode 10.2.
- Improved Swift 4 compatibility.
Released on 2019-03-24
- AutoInsetter to 1.6 - with numerous fixes and improvements for view controller insetting.
Released on 2019-03-14
- #363
.alignmentproperty toTMBarLayoutto adjust content alignment. - #378
.spacingproperty toTMBarViewto adjust spacing between bar content / accessory views. - #373
setNeedsUpdate()toTMBarItemableto allow for dynamic item updates. - #387 Ability to show badges on
TMBarButtonvia.badgeValueonTMBarItemable.. - #392
tabmanParenttoUIViewController. - #392
tabmanBarItemstoUIViewController.
- #378 Improved bar transitioning behavior when adjusting selected tab.
- #373
.titleis now mutable onTMBarItemable. - #373
.imageis now mutable onTMBarItemable.
Released on 2019-02-23
- #383 Child insetting issues on iOS 10.
Released on 2019-01-14
- #366 Incorrect indicator positioning when using a Right-to-Left language.
- #368 Improve access controls in
TMBarIndicatorand subclasses. - #368 Improve access controls in
TMBarButton. - #368 Improve access controls in
TMBarLayout.
Released on 2018-12-29
- Swift version to 4.2 in podspec.
- by benbahrenburg.
- Annoying conformance warning in
TMBarcaused by Swift compiler bug.- by benbahrenburg.
Released on 2018-12-24
- Make
TMHorizontalBarLayoutpropertiesopen. - Make
TMConstrainedHorizontalBarLayoutpropertiesopen. - Make
TMLabelBarButtonopen. - Make
TMTabItemBarButtonopen.
Released on 2018-12-19
- #355 Public initializer to
TMAnimation.- by netspencer.
- #354 Remove
UIViewControllerconformance toTMBarItemable. - Improved documentation.
Released on 2018-12-02
Basically, everything has changed.
- 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
UIKitcomponents such asUINavigationItemto bar items. - Dramatically simplified creation and integration of custom components.
- Improved animation & transitioning engine.
- All views are now exposed via public API.
- Numerous issues with automatic insetting of child contents.
- A whole lot of performance fixes.
- Numerous memory problems.
Released on 2018-10-04
- Cleaned up some potential memory issues in Bar reloading.
- by msaps.
Released on 2018-10-03
Released on 2018-09-20
- Migrated to use Swift 4.2.
Released on 2018-08-02
Released on 2018-06-20
Released on 2018-06-05
Released on 2018-04-18
Released on 2018-04-12
- Improved animation when interactively transitioning between items with a
selectedFont.- by msaps.
selectedFontnow defaults tofontif no custom value is set when used in button bars.- by msaps.
- #273 ssue where selectedTextFont would incorrectly be used for every item in a button bar when not selected.
- by msaps.
Released on 2018-04-06
Released on 2018-04-02
.bottomSeparatorconfiguration toTabmanBar.Appearance.- by msaps.
- Ability to customize separator height via
Appearance.bottomSeparator.height. - Ability to specifiy a selected font for bar items via
Appearance.text.selectedFont.
- Deprecated
Appearance.State.shouldHideWhenSingleItem.- by msaps.
- Deprecated
Appearance.Style.bottomSeparatorColor.- by msaps.
- Deprecated
Appearance.Layout.bottomSeparatorEdgeInsets.- by msaps.
Released on 2018-02-23
Released on 2018-02-09
- Improved compatiblity with Carthage.
- Carthage now builds 'Tabman' scheme and target.
- by msaps.
Released on 2018-02-05
- Updated AutoInsetter to 1.2 for 'extension safe API' compatibility.
- by msaps.
Released on 2018-01-30
- Tabman now uses AutoInsetter.
- by msaps.
- Auto Insetting now takes account of relative subview positioning.
- by msaps.
Released on 2018-01-13
- #215 Add default crossfade transition to custom indicators.
- by Limon-O-O.
- #229 Update project workspace to use CocoaPods for dependency management.
- by msaps.
- #231 Update styling for project.
- by msaps.
Released on 2018-01-10
- #219 Make Tabman safe to use in extensions.
- by msaps & OskarGroth.
- #221 Remove PureLayout dependency.
- by msaps.
Released on 2017-12-20
- #192 Deprecated
automaticallyAdjustsChildScrollViewInsets.- by msaps.
- #191 Disable auto-insetting when the bar is embedded or attached.
- by msaps.
- #208 Remove temporary fix for iOS 11.2 safe area change.
- by msaps.
Released on 2017-12-20
- Versions of Tabman 1.1.x are now tied to Pageboy 2.1.x.
- by msaps.
Released on 2017-12-12
Released on 2017-12-05
Released on 2017-11-28
Released on 2017-11-23
- #187 Behaviors engine to
TabmanBar.- by msaps.
- #186 Ability to hide TabmanBar with only one item.
- by msaps.
- #177 Improve TabmanBar accessibility.
- by msaps.
- Refactored auto insetting logic to
AutoInsetEngine.- by msaps.
- Improved auto insetting reliability.
- by msaps.
Released on 2017-11-15
- Removed unnecessary debugging logging.
- by msaps.
Released on 2017-11-15
- Support for
additionalSafeAreaInsetsfor child view controllers.- by msaps.
Released on 2017-11-12
- Renamed
safeAreaInsetstosafeAreainTabmanBar.Insets.- by msaps.
- Fixed issue where bar background would not extend correctly when using
.preferredbar location.- by msaps.
- Fixed issue where child view controller contents would not get inset correctly on iPhone X.
- by msaps.
Released on 2017-10-23
- Added support for
UICollectionViewControllerand automatic insetting.- by msaps.
Released on 2017-10-22
- New
embedBar(in view: UIView)function toTabmanViewController.- by msaps.
- Deprecated
embedBar(inView view: UIView)inTabmanViewController.- by msaps.
- Add improved error handling to bar embedding and attachment operations.
- by msaps.
Released on 2017-10-11
- #154 Support for extending bar background on iPhone X function areas.
- by msaps.
- #148
imageRenderingModetoTabmanBar.Appearance.Style.- by thevest.
Released on 2017-09-28
safeAreaInsetstoTabmanBar.Insets.- by msaps.
- Deprecated
topLayoutGuideinTabmanBar.Insets.- by msaps.
- Deprecated
bottomLayoutGuideinTabmanBar.Insets.- by msaps.
Released on 2017-09-18
contextproperty toTabmanBar.Item.- by Vortec4800.
- Updated example project styling and improved iPhone X support.
- by msaps.
Released on 2017-09-14
- Swift 4 support
- by msaps.
- Support for Xcode 9 and iOS 11.
- by msaps.
- Compatibility for Pageboy 2.
- by msaps.
Released on 2017-09-05
- #135 Ability to extend background edge insets under system components.
- Added by msaps.
- #138
extendBackgroundEdgeInsetsproperty toTabmanBar.Appearance.- Added by msaps.
Released on 2017-08-25
- #132 Crash when using
UITableViewControllerwith auto-insetting enabled.- Fixed by Patrick-Remy.
- Resolved deprecation warnings when using latest Xcode 9 beta.
- Fixed by msaps.
Released on 2017-08-04
Released on 2017-07-25
- Update Pageboy dependency to 1.4.x.
- Updated by msaps.
Released on 2017-07-13
- #108 Remove lazy variables to fix Carthage linker errors.
- Fixed by msaps.
- Rename
TabmanBarBackgroundViewtoTabmanBar.BackgroundView. - Rename
TabmanSeparatortoSeparator. - Rename
TabmanCircularViewtoCircularView. - Rename
TabmanChevronViewtoChevronView.
Released on 2017-07-10
- #111 Fix issue with
bottomLayoutGuideinset when usingUITableViewController.- Fixed by msaps.
- #80 Fix issue where automatic insetting would incorrectly be re-applied when
hidesBarOnSwipewas enabled onUINavigationController.- Fixed by msaps.
Released on 2017-06-30
Released on 2017-06-24
- #96 Added compatibility support for iOS 8.
Released on 2017-06-19.
- #77 Support for Right-To-Left languages.
- Tabman & Pageboy both now fully support localization for right-to-left language layout.
- Pageboy to
1.2
- #91 Issue where title labels in
TabmanBarcould appear to be using different font sizes due to incorrect layout compression.
Released on 2017-06-18.
minimumItemWidthtoAppearance.Layout.- Allows for specification of the minimum width an item in a scrolling
TabmanBarmust be for display. - By AlexZd
- Allows for specification of the minimum width an item in a scrolling
Itemtypealias forTabmanBar.ItemtoTabmanViewController.
- Pageboy to
1.1.2.
Released on 2017-06-14.
TabmanBarDelegatedelegate property toTabmanBar.Config.- Ability to dictate whether a bar item should be selected.
- Available via
bar(shouldSelectItemAt index: Int) -> BoolinTabmanBarDelegate. - By Fábio Bernardo.
- Available via
- Ability to hide
TabmanBarif only one item is provided.- Available via
shouldHideWhenSingleIteminTabmanBar.Appearance.State. - By Diogo Brito
- Available via
- Refactored
TabmanBarItemtoTabmanBar.Item. - Refactored
TabmanBarConfigtoTabmanBar.Config.
- Fixed issue where
useRoundedCornerswould not work on line indicators. - Fixed issue where bar would incorrectly layout with superview layout changes.
Released on 2017-06-09.
- Added
itemSelected(at index: Int)function toTabmanBar.- Informs the
TabmanViewControllerthat an item in the bar has been selected.
- Informs the
- Added
construct(in contentView: UIView, for items: [TabmanBarItem])function toTabmanBarLifecycle. - Added
add(indicator: TabmanIndicator, to contentView: UIView)function toTabmanBarLifecycle.
- Removed
constructTabBar(items: [TabmanBarItem])fromTabmanBarLifecycle. - Removed
addIndicatorToBar(indicator: TabmanIndicator)fromTabmanBarLifecycle.
Released on 2017-06-07.
- Updated
Pageboytov1.1.0.
Released on 2017-05-24.
itemDistributionproperty toTabmanBar.Appearance.Layout.- Allows for centre aligning items within a bar. #71
- Improvements to documentation.
- Minor refactoring to
TabmanBar.Appearance.
Released on 2017-05-14.
- Added Carthage support #30.
- Added automatic child view controller insetting behaviour #43.
- This will automatically inset any
UIScrollViewcontent that is present in child view controllers to appear correctly withTabmanBar. - Enabled by default with the
automaticallyAdjustsChildScrollViewInsetsproperty onTabmanViewController.
- This will automatically inset any
- Added
requiredInsetsTabmanBar.Insetsobject toTabmanBarConfig.- Provides inset values for all components required to manually inset content correctly for a
TabmanBar. - Replaces
requiredContentInset.
- Provides inset values for all components required to manually inset content correctly for a
- Added a fresh coat of paint.
- Deprecated
requiredContentInsetonTabmanBarConfig. - Move initialisation logic to
viewDidLoadfromloadView.
Released on 2017-04-20.
- Pod releases are now locked to a specific version of
Pageboy.
- Fixed deprecation warning for
PageboyViewController.PageIndexAPI update. - #58 Fixed missing delegate function from
PageboyViewControllerDelegateAPI update.
Released on 2017-04-11.
- Updated dependencies.
- #51 Fixed issue with using custom font on bar styles other than
.scrollingButtonBar.
Released on 2017-04-06.
- Updated podspec to use latest versions of
Pageboywhich contain numerous fixes.
Released on 2017-04-05.
- #50 Fixed memory retain issue with
TabmanBarConfig.delegateproperty.
Released on 2017-04-04.
- New artwork and colours for the repo & example app.
- Fix issue where
requiredContentInsetproperty onTabmanViewController.barwould consistently have incorrect values.- Partial fix for #42 - automatic insetting for child view controllers still under development.
Released on 2017-03-30.
- Additional tests to improve coverage.
- Updated
interaction.isScrollEnabledto betrueby default inTabmanBar.Appearance.
- Fixed issue where internally managed
TabmanBarcould potentially be below other subviews.
Released on 2017-03-28.
- New
.buttonBarstyle, which features a static button bar with equally distributed spacing.
- Refactored old
.buttonBarstyle to.scrollingButtonBar. This is the new default style. - A few of the previously
publicproperties on variousTabmanBarstyles are nowinternal. These should always be updated via theTabmanBar.Appearanceobject.
- Issues where certain appearance properties were not always adhered to correctly.
- Issues with
compresses/bouncesproperties inTabmanBar.Appearance. New behaviour simply takesbouncesas precedence and ignorescompresses. - A few minor layout issues that would appear when setting custom layout appearance properties.
Released on 2017-03-23.
- Bottom separator view to
TabmanBar.- This can be customised via
style.bottomSeparatorColorinTabmanBar.Appearance.
- This can be customised via
- Compressing indicator transition style.
- Indicator will compress when over scrolling at the end of page ranges rather than bouncing.
- Enabled via
indicator.compressesinTabmanBar.Appearance.
- Ability to embed internally managed
TabmanBarin an external view toTabmanViewController.- Accessible via
embedBar(inView:)anddisembedBar().
- Accessible via
- Renamed
.noneto.clearinTabmanBarBackgroundView.BackgroundStyle.
Released on 2017-03-20.
Initial Tabman release - A powerful paging view controller with indicator bar for iOS