Skip to content

Latest commit

 

History

History
992 lines (745 loc) · 36.8 KB

CHANGELOG.md

File metadata and controls

992 lines (745 loc) · 36.8 KB

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


Released on 2024-04-14

Updated

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

Released on 2024-04-06

Added

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

Updated

  • Pageboy now requires iOS 12 or tvOS 12.

Released on 2023-07-16

Fixed

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

Released on 2022-11-08

Fixed

  • #605 Issue where TMBarView.backgroundView would not be visible due to broken layout constraints.

Released on 2022-11-02

Added

  • Support for Xcode 14.

Updated

  • Tabman now requires iOS 11 or newer.
  • delegate is now unavailable on TabmanViewController.

Released on 2022-08-20

Updated

Fixed

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

Released on 2022-01-15

Added

Fixed

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

Released on 2021-03-30

Fixed

Released on 2021-03-08

Added

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

Released on 2021-01-23

Updated

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

Released on 2020-07-20

Fixed

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

Released on 2020-05-04

Updated

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

Released on 2020-04-25

Fixed

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

Released on 2020-04-21

Fixed

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

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.

Released on 2019-12-23

Added

  • centerDistributed to TMBarLayout.Alignment to center align all bar buttons.

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.

Released on 2019-10-06

Updated

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.

Released on 2019-09-11

Fixed

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

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.

Released on 2019-08-03

Added

  • Support for vertical separators between bar buttons to TMHorizontalBarLayout via showSeparators.
  • separatorColor to TMHorizontalBarLayout.
  • separatorInset to TMHorizontalBarLayout.
  • separatorWidth to TMHorizontalBarLayout.

Released on 2019-07-13

Updated

  • Add support for multiple Swift versions to Podspec.

Released on 2019-04-25

Fixed

  • Incorrect Swift version in podspec, now 4.0.

Released on 2019-04-20

Fixed

  • Build issues with iOS 9.

Released on 2019-04-19

Added

  • Ability to override automatic inset values via calculateRequiredInsets() on TabmanViewController.
  • #404 adjustsAlphaOnSelection to TMBarButton.
  • #338 Ability to hide / show the bar with TMHidingBar.
  • #403 Accessibility support to TMBarView.
  • #403 Accessibility support to TMBarItem.
  • #403 Accessibility support to TMBarButton.
  • #321 navigationItem(item:) to TabmanViewController.BarLocation with support for embedding a TMBar in a UINavigationBar.

Updated

  • Make TMBarItem open.
  • Make .title open on TMBarItem.
  • Make .image open on TMBarItem.
  • Make .badgeValue open on TMBarItem.
  • Make .items open on TMBarView.
  • Make .dataSource open on TMBarView.
  • Make .delegate open on TMBarView.
  • Make .scrollMode open on TMBarView.
  • Make .fadesContentEdges open on TMBarView.
  • Make .spacing open on TMBarView.
  • #396 Improved layout adaptability of TMTabItemBarButton on iPad and in landscape.
  • #404 TMBarButton no longer performs default fade transition in update(for selectionState:)

Released on 2019-03-31

Updated

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

Released on 2019-03-24

Updated

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

Released on 2019-03-14

Added

  • #363 .alignment property to TMBarLayout to adjust content alignment.
  • #378 .spacing property to TMBarView to adjust spacing between bar content / accessory views.
  • #373 setNeedsUpdate() to TMBarItemable to allow for dynamic item updates.
  • #387 Ability to show badges on TMBarButton via .badgeValue on TMBarItemable..
  • #392 tabmanParent to UIViewController.
  • #392 tabmanBarItems to UIViewController.

Updated

  • #378 Improved bar transitioning behavior when adjusting selected tab.
  • #373 .title is now mutable on TMBarItemable.
  • #373 .image is now mutable on TMBarItemable.

Released on 2019-02-23

Fixed

  • #383 Child insetting issues on iOS 10.

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.

Released on 2018-12-29

Updated

Fixed

  • Annoying conformance warning in TMBar caused by Swift compiler bug.

Released on 2018-12-24

Updated

  • Make TMHorizontalBarLayout properties open.
  • Make TMConstrainedHorizontalBarLayout properties open.
  • Make TMLabelBarButton open.
  • Make TMTabItemBarButton open.

Fixed

  • #358 Fix typo of TMBarDataSource in README.

Released on 2018-12-19

Added

Updated

  • #354 Remove UIViewController conformance to TMBarItemable.
  • Improved documentation.

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.

Released on 2018-10-04

Fixed

  • Cleaned up some potential memory issues in Bar reloading.

Released on 2018-10-03

Fixed

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

Released on 2018-09-20

Updated

  • Migrated to use Swift 4.2.

Released on 2018-08-02

Fixed

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

Released on 2018-06-20

Fixed

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

Released on 2018-06-05

Added

  • #291 Fill Item Distribution for Scrolling Button Bar.

Released on 2018-04-18

Fixed

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

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.

Released on 2018-04-06

Updated

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

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.

Released on 2018-02-23

Updated

  • Now using Pageboy 2.4 with improved transitioning support.

Released on 2018-02-09

Updated

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

Released on 2018-02-05

Updated

  • Updated AutoInsetter to 1.2 for 'extension safe API' compatibility.

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.

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.

Released on 2018-01-10

Added

  • #227 parentTabmanBarInsets property to UIViewController.

Updated


Released on 2017-12-20

Added

  • #192 automaticallyAdjustsChildViewInsets to TabmanViewController.

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.

Released on 2017-12-20

Updated

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

Released on 2017-12-12

Fixed

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

Released on 2017-12-05

Fixed

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

Released on 2017-11-28

Fixed

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

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.

Released on 2017-11-15

Added

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

Fixed

  • Removed unnecessary debugging logging.

Released on 2017-11-15

Added

  • Support for additionalSafeAreaInsets for child view controllers.

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.

Released on 2017-10-23

Added

  • Added support for UICollectionViewController and automatic insetting.

Fixed

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

Released on 2017-10-22

Added

  • New embedBar(in view: UIView) function to TabmanViewController.

Updated

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

Released on 2017-10-11

Added

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

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.

Released on 2017-09-18

Added

  • context property to TabmanBar.Item.

Updated

  • Updated example project styling and improved iPhone X support.

Released on 2017-09-14

Added


Released on 2017-09-05

Added

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

Released on 2017-08-25

Fixed

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

Released on 2017-08-04

Fixed

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

Released on 2017-07-25

Updated

  • Update Pageboy dependency to 1.4.x.

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.

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.

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.

Released on 2017-06-24

Added

  • #96 Added compatibility support for iOS 8.

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.

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.

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.

Released on 2017-06-09.

Added

  • Added itemSelected(at index: Int) function to TabmanBar.
    • Informs the TabmanViewController that an item in the bar has been selected.
  • 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.

Released on 2017-06-07.

Updated

  • Updated Pageboy to v1.1.0.

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.

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.

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.

Released on 2017-04-11.

Updated

  • Updated dependencies.

Fixed

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

Released on 2017-04-06.

Updated

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

Released on 2017-04-05.

Fixed

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

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.

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.

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.

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.

Released on 2017-03-20.

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