All notable changes to this project will be documented in this file.
Tabman
adheres to Semantic Versioning.
2.13.x
Releases - 2.13.02.12.x
Releases - 2.12.02.11.x
Releases - 2.11.0 | 2.11.12.10.x
Releases - 2.10.02.9.x
Releases - 2.9.0 | 2.9.12.8.x
Releases - 2.8.0 | 2.8.1 | 2.8.22.7.x
Releases - 2.7.02.6.x
Releases - 2.6.0 | 2.6.1 | 2.6.2 | 2.6.32.5.x
Releases - 2.5.02.4.x
Releases - 2.4.0 | 2.4.1 | 2.4.2 | 2.4.32.3.x
Releases - 2.3.02.2.x
Releases - 2.2.0 | 2.2.12.1.x
Releases - 2.1.0 | 2.1.1 | 2.1.2 | 2.1.3 | 2.1.42.0.x
Releases - 2.0.0
1.10.x
Releases - 1.10.0 | 1.10.1 | 1.1.0.21.9.x
Releases - 1.9.0 | 1.9.1 | 1.9.21.8.x
Releases - 1.8.0 | 1.8.1 | 1.8.21.7.x
Releases - 1.7.01.6.x
Releases - 1.6.01.5.x
Releases - 1.5.0 | 1.5.1 | 1.5.21.4.x
Releases - 1.4.01.3.x
Releases - 1.3.01.2.x
Releases - 1.2.01.1.x
Releases - 1.1.0 | 1.1.1 | 1.1.2 | 1.1.3 | 1.1.41.0.x
Releases - 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.x
Releases - 0.8.0 | 0.8.1 | 0.8.2 | 0.8.30.7.x
Releases - 0.7.0 | 0.7.1 | 0.7.2 | 0.7.30.6.x
Releases - 0.6.0 | 0.6.1 | 0.6.20.5.x
Releases - 0.5.0 | 0.5.1 | 0.5.2 | 0.5.30.4.x
Releases - 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 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.
- Pageboy now requires iOS 12 or tvOS 12.
Released on 2023-07-16
Released on 2022-11-08
- #605 Issue where
TMBarView.backgroundView
would not be visible due to broken layout constraints.
Released on 2022-11-02
- Support for Xcode 14.
- Tabman now requires iOS 11 or newer.
delegate
is nowunavailable
onTabmanViewController
.
Released on 2022-08-20
- Pageboy to 3.7.0.
- #601 Issue where
AnimateableLabel
would use the incorrecttextColor
when overriding theuserInterfaceStyle
.- by Gyuni
Released on 2022-01-15
- #580 Support for
selectedImage
toTMTabItemBarButton
andTMBarItem
.
- #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
TMLabelBarButton
withadjustsFontForContentSizeCategory
. - Support for Dynamic Type to
TMTabItemBarButton
withadjustsFontForContentSizeCategory
.
Released on 2021-01-23
- #553
leftAccessoryView
andrightAccessoryView
are now included in accessibility elements inTMBarView
.- by e-sung
Released on 2020-07-20
- Crash when calling
TMBarButton.allTargets
due toTMBarButtonInteractionController
not 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.h
header in Swift PM.- by filiplazov
Released on 2020-01-12
verticalAlignment
toTMLabelBarButton
to allow for button contents to be vertically aligned.
- Issue where
TMLabelBarButton
would fail to resize correctly when using custom fonts.
Released on 2019-12-23
centerDistributed
toTMBarLayout.Alignment
to center align all bar buttons.- by wwdc14.
- Removed AutoInsetter as a dependency.
- Child insetting logic now utilises
additionalSafeAreaInsets
only 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
TMBarLayout
not working for trailing buttons.- by townsendeb.
- Center aligned
TMBarLayout
having 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.
contentInset
toTMBadgeView
allowing for custom badge content insets.
- Issue where accessing
safeAreaLayoutGuide
could cause a crash on Jailbroken devices.- by nghiaphunguyen.
- Issue where constraints in
TMTabItemBarButton
would not correctly be applied on iOS 13.- by forceunwrap.
- Issue where a
TMSystemBar
could fail to correctly extend background edges into system areas.
Released on 2019-08-03
- Support for vertical separators between bar buttons to
TMHorizontalBarLayout
viashowSeparators
. separatorColor
toTMHorizontalBarLayout
.separatorInset
toTMHorizontalBarLayout
.separatorWidth
toTMHorizontalBarLayout
.
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
adjustsAlphaOnSelection
toTMBarButton
. - #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.BarLocation
with support for embedding aTMBar
in aUINavigationBar
.
- Make
TMBarItem
open
. - Make
.title
open onTMBarItem
. - Make
.image
open onTMBarItem
. - Make
.badgeValue
open onTMBarItem
. - Make
.items
open
onTMBarView
. - Make
.dataSource
open
onTMBarView
. - Make
.delegate
open
onTMBarView
. - Make
.scrollMode
open
onTMBarView
. - Make
.fadesContentEdges
open
onTMBarView
. - Make
.spacing
open
onTMBarView
. - #396 Improved layout adaptability of
TMTabItemBarButton
on iPad and in landscape. - #404
TMBarButton
no 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
.alignment
property toTMBarLayout
to adjust content alignment. - #378
.spacing
property toTMBarView
to adjust spacing between bar content / accessory views. - #373
setNeedsUpdate()
toTMBarItemable
to allow for dynamic item updates. - #387 Ability to show badges on
TMBarButton
via.badgeValue
onTMBarItemable
.. - #392
tabmanParent
toUIViewController
. - #392
tabmanBarItems
toUIViewController
.
- #378 Improved bar transitioning behavior when adjusting selected tab.
- #373
.title
is now mutable onTMBarItemable
. - #373
.image
is 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
TMBarIndicator
and 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
TMBar
caused by Swift compiler bug.- by benbahrenburg.
Released on 2018-12-24
- Make
TMHorizontalBarLayout
propertiesopen
. - Make
TMConstrainedHorizontalBarLayout
propertiesopen
. - Make
TMLabelBarButton
open
. - Make
TMTabItemBarButton
open
.
Released on 2018-12-19
- #355 Public initializer to
TMAnimation
.- by netspencer.
- #354 Remove
UIViewController
conformance 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
UIKit
components such asUINavigationItem
to 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.
selectedFont
now defaults tofont
if 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
.bottomSeparator
configuration 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
additionalSafeAreaInsets
for child view controllers.- by msaps.
Released on 2017-11-12
- Renamed
safeAreaInsets
tosafeArea
inTabmanBar.Insets
.- by msaps.
- Fixed issue where bar background would not extend correctly when using
.preferred
bar 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
UICollectionViewController
and 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
imageRenderingMode
toTabmanBar.Appearance.Style
.- by thevest.
Released on 2017-09-28
safeAreaInsets
toTabmanBar.Insets
.- by msaps.
- Deprecated
topLayoutGuide
inTabmanBar.Insets
.- by msaps.
- Deprecated
bottomLayoutGuide
inTabmanBar.Insets
.- by msaps.
Released on 2017-09-18
context
property 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
extendBackgroundEdgeInsets
property toTabmanBar.Appearance
.- Added by msaps.
Released on 2017-08-25
- #132 Crash when using
UITableViewController
with 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
TabmanBarBackgroundView
toTabmanBar.BackgroundView
. - Rename
TabmanSeparator
toSeparator
. - Rename
TabmanCircularView
toCircularView
. - Rename
TabmanChevronView
toChevronView
.
Released on 2017-07-10
- #111 Fix issue with
bottomLayoutGuide
inset when usingUITableViewController
.- Fixed by msaps.
- #80 Fix issue where automatic insetting would incorrectly be re-applied when
hidesBarOnSwipe
was 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
TabmanBar
could appear to be using different font sizes due to incorrect layout compression.
Released on 2017-06-18.
minimumItemWidth
toAppearance.Layout
.- Allows for specification of the minimum width an item in a scrolling
TabmanBar
must be for display. - By AlexZd
- Allows for specification of the minimum width an item in a scrolling
Item
typealias forTabmanBar.Item
toTabmanViewController
.
- Pageboy to
1.1.2
.
Released on 2017-06-14.
TabmanBarDelegate
delegate property toTabmanBar.Config
.- Ability to dictate whether a bar item should be selected.
- Available via
bar(shouldSelectItemAt index: Int) -> Bool
inTabmanBarDelegate
. - By Fábio Bernardo.
- Available via
- Ability to hide
TabmanBar
if only one item is provided.- Available via
shouldHideWhenSingleItem
inTabmanBar.Appearance.State
. - By Diogo Brito
- Available via
- Refactored
TabmanBarItem
toTabmanBar.Item
. - Refactored
TabmanBarConfig
toTabmanBar.Config
.
- Fixed issue where
useRoundedCorners
would 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
TabmanViewController
that 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
Pageboy
tov1.1.0
.
Released on 2017-05-24.
itemDistribution
property 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
UIScrollView
content that is present in child view controllers to appear correctly withTabmanBar
. - Enabled by default with the
automaticallyAdjustsChildScrollViewInsets
property onTabmanViewController
.
- This will automatically inset any
- Added
requiredInsets
TabmanBar.Insets
object 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
requiredContentInset
onTabmanBarConfig
. - Move initialisation logic to
viewDidLoad
fromloadView
.
Released on 2017-04-20.
- Pod releases are now locked to a specific version of
Pageboy
.
- Fixed deprecation warning for
PageboyViewController.PageIndex
API update. - #58 Fixed missing delegate function from
PageboyViewControllerDelegate
API 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
Pageboy
which contain numerous fixes.
Released on 2017-04-05.
- #50 Fixed memory retain issue with
TabmanBarConfig
.delegate
property.
Released on 2017-04-04.
- New artwork and colours for the repo & example app.
- Fix issue where
requiredContentInset
property onTabmanViewController.bar
would 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.isScrollEnabled
to betrue
by default inTabmanBar.Appearance
.
- Fixed issue where internally managed
TabmanBar
could potentially be below other subviews.
Released on 2017-03-28.
- New
.buttonBar
style, which features a static button bar with equally distributed spacing.
- Refactored old
.buttonBar
style to.scrollingButtonBar
. This is the new default style. - A few of the previously
public
properties on variousTabmanBar
styles are nowinternal
. These should always be updated via theTabmanBar.Appearance
object.
- Issues where certain appearance properties were not always adhered to correctly.
- Issues with
compresses
/bounces
properties inTabmanBar.Appearance
. New behaviour simply takesbounces
as 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.bottomSeparatorColor
inTabmanBar.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.compresses
inTabmanBar.Appearance
.
- Ability to embed internally managed
TabmanBar
in an external view toTabmanViewController
.- Accessible via
embedBar(inView:)
anddisembedBar()
.
- Accessible via
- Renamed
.none
to.clear
inTabmanBarBackgroundView.BackgroundStyle
.
Released on 2017-03-20.
Initial Tabman release - A powerful paging view controller with indicator bar for iOS