Change Log
All notable changes to this project will be documented in this file.
Tabman
adheres to Semantic Versioning.
2.x Releases
2.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.x Releases
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.x Releases
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
2.9.1
Released on 2020-07-20
Fixed
- Crash when calling
TMBarButton.allTargets
due toTMBarButtonInteractionController
not being hashable.- by SuperTango
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.- by filiplazov
2.8.0
Released on 2020-01-12
Added
verticalAlignment
toTMLabelBarButton
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
centerDistributed
toTMBarLayout.Alignment
to center align all bar buttons.- by wwdc14.
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
- Pageboy to 3.5.0.
2.6.2
Released on 2019-10-03
Fixed
- Center aligned
TMBarLayout
not working for trailing buttons.- by townsendeb.
- Center aligned
TMBarLayout
having an incorrect offset when using a non-zerocontentInset
.
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
toTMBadgeView
allowing for custom badge content insets.
Fixed
- 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.
2.5.0
Released on 2019-08-03
Added
- Support for vertical separators between bar buttons to
TMHorizontalBarLayout
viashowSeparators
. separatorColor
toTMHorizontalBarLayout
.separatorInset
toTMHorizontalBarLayout
.separatorWidth
toTMHorizontalBarLayout
.
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
- 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
.
Updated
- 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:)
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
- #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
.
Updated
- #378 Improved bar transitioning behavior when adjusting selected tab.
- #373
.title
is now mutable onTMBarItemable
. - #373
.image
is now mutable onTMBarItemable
.
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
- #368 Improve access controls in
TMBarIndicator
and subclasses. - #368 Improve access controls in
TMBarButton
. - #368 Improve access controls in
TMBarLayout
.
2.1.2
Released on 2018-12-29
Updated
- Swift version to 4.2 in podspec.
- by benbahrenburg.
Fixed
- Annoying conformance warning in
TMBar
caused by Swift compiler bug.- by benbahrenburg.
2.1.1
Released on 2018-12-24
Updated
- Make
TMHorizontalBarLayout
propertiesopen
. - Make
TMConstrainedHorizontalBarLayout
propertiesopen
. - Make
TMLabelBarButton
open
. - Make
TMTabItemBarButton
open
.
Fixed
2.1.0
Released on 2018-12-19
Added
- #355 Public initializer to
TMAnimation
.- by netspencer.
Updated
- #354 Remove
UIViewController
conformance toTMBarItemable
. - Improved documentation.
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 asUINavigationItem
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.
- by msaps.
1.10.1
Released on 2018-10-03
Fixed
1.10.0
Released on 2018-09-20
Updated
- Migrated to use Swift 4.2.
1.9.2
Released on 2018-08-02
Fixed
1.9.1
Released on 2018-06-20
Fixed
1.9.0
Released on 2018-06-05
Added
1.8.2
Released on 2018-04-18
Fixed
1.8.1
Released on 2018-04-12
Updated
- 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.
Fixed
- #273 ssue where selectedTextFont would incorrectly be used for every item in a button bar when not selected.
- by msaps.
1.8.0
Released on 2018-04-06
Updated
1.7.0
Released on 2018-04-02
Added
.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
.
Updated
- Deprecated
Appearance.State.shouldHideWhenSingleItem
.- by msaps.
- Deprecated
Appearance.Style.bottomSeparatorColor
.- by msaps.
- Deprecated
Appearance.Layout.bottomSeparatorEdgeInsets
.- by msaps.
1.6.0
Released on 2018-02-23
Updated
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.
- by msaps.
1.5.0
Released on 2018-01-30
Updated
- Tabman now uses AutoInsetter.
- by msaps.
- Auto Insetting now takes account of relative subview positioning.
- by msaps.
Fixed
1.4.0
Released on 2018-01-13
Updated
- #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.
1.3.0
Released on 2018-01-10
Added
Updated
- #219 Make Tabman safe to use in extensions.
- by msaps & OskarGroth.
- #221 Remove PureLayout dependency.
- by msaps.
1.2.0
Released on 2017-12-20
Added
- #192
automaticallyAdjustsChildViewInsets
toTabmanViewController
.- by msaps.
Updated
- #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.
Fixed
1.1.4
Released on 2017-12-20
Updated
- Versions of Tabman 1.1.x are now tied to Pageboy 2.1.x.
- by msaps.
1.1.3
Released on 2017-12-12
Fixed
1.1.2
Released on 2017-12-05
Fixed
1.1.1
Released on 2017-11-28
Fixed
1.1.0
Released on 2017-11-23
Added
- #187 Behaviors engine to
TabmanBar
.- by msaps.
- #186 Ability to hide TabmanBar with only one item.
- by msaps.
- #177 Improve TabmanBar accessibility.
- by msaps.
Updated
- Refactored auto insetting logic to
AutoInsetEngine
.- by msaps.
- Improved auto insetting reliability.
- by msaps.
1.0.8
Released on 2017-11-15
Added
Fixed
- Removed unnecessary debugging logging.
- by msaps.
1.0.7
Released on 2017-11-15
Added
- Support for
additionalSafeAreaInsets
for child view controllers.- by msaps.
1.0.6
Released on 2017-11-12
Updated
- Renamed
safeAreaInsets
tosafeArea
inTabmanBar.Insets
.- by msaps.
Fixed
- 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.
1.0.5
Released on 2017-10-23
Added
- Added support for
UICollectionViewController
and automatic insetting.- by msaps.
Fixed
1.0.4
Released on 2017-10-22
Added
- New
embedBar(in view: UIView)
function toTabmanViewController
.- by msaps.
Updated
- Deprecated
embedBar(inView view: UIView)
inTabmanViewController
.- by msaps.
- Add improved error handling to bar embedding and attachment operations.
- by msaps.
1.0.3
Released on 2017-10-11
Added
- #154 Support for extending bar background on iPhone X function areas.
- by msaps.
- #148
imageRenderingMode
toTabmanBar.Appearance.Style
.- by thevest.
1.0.2
Released on 2017-09-28
Added
safeAreaInsets
toTabmanBar.Insets
.- by msaps.
Updated
- Deprecated
topLayoutGuide
inTabmanBar.Insets
.- by msaps.
- Deprecated
bottomLayoutGuide
inTabmanBar.Insets
.- by msaps.
Fixed
1.0.1
Released on 2017-09-18
Added
context
property toTabmanBar.Item
.- by Vortec4800.
Updated
- Updated example project styling and improved iPhone X support.
- by msaps.
1.0.0
Released on 2017-09-14
Added
- Swift 4 support
- by msaps.
- Support for Xcode 9 and iOS 11.
- by msaps.
- Compatibility for Pageboy 2.
- by msaps.
0.8.3
Released on 2017-09-05
Added
- #135 Ability to extend background edge insets under system components.
- Added by msaps.
- #138
extendBackgroundEdgeInsets
property toTabmanBar.Appearance
.- Added by msaps.
0.8.2
Released on 2017-08-25
Fixed
- #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.
0.8.1
Released on 2017-08-04
Fixed
0.8.0
Released on 2017-07-25
Updated
- Update Pageboy dependency to 1.4.x.
- Updated by msaps.
0.7.3
Released on 2017-07-13
Updated
- #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
.
Fixed
0.7.2
Released on 2017-07-10
Fixed
- #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.
0.7.1
Released on 2017-06-30
Added
Fixed
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
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
.
Updated
- Pageboy to
1.1.2
.
0.6.0
Released on 2017-06-14.
Added
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
Updated
- Refactored
TabmanBarItem
toTabmanBar.Item
. - Refactored
TabmanBarConfig
toTabmanBar.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 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
- Removed
constructTabBar(items: [TabmanBarItem])
fromTabmanBarLifecycle
. - Removed
addIndicatorToBar(indicator: TabmanIndicator)
fromTabmanBarLifecycle
.
0.5.2
Released on 2017-06-07.
Updated
- Updated
Pageboy
tov1.1.0
.
0.5.1
Released on 2017-05-24.
Added
itemDistribution
property toTabmanBar.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 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
Updated
- Added a fresh coat of paint.
- Deprecated
requiredContentInset
onTabmanBarConfig
. - Move initialisation logic to
viewDidLoad
fromloadView
.
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 onTabmanViewController.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 betrue
by default inTabmanBar.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 variousTabmanBar
styles are nowinternal
. These should always be updated via theTabmanBar.Appearance
object.
Fixed
- 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.
0.4.1
Released on 2017-03-23.
Added
- 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
Updated
- Renamed
.none
to.clear
inTabmanBarBackgroundView.BackgroundStyle
.
0.4.0
Released on 2017-03-20.
Initial Tabman release - A powerful paging view controller with indicator bar for iOS