Skip to content

Releases: material-components/material-components-ios

v79.2.0

19 Mar 15:16
Compare
Choose a tag to compare

79.2.0

This minor release introduces a bug fix and new API to Flexible Header, Beta Theming Extensions for
App Bar and Text Fields, and additional component snapshot tests.

New features

MDCFlexibleHeaderView has a new API that can be called from UIScrollViewDelegates to notify it of
updated adjusted content inset values.

func scrollViewDidChangeAdjustedContentInset(_ scrollView: UIScrollView) {
    if #available(iOS 11.0, *) {
      self.appBarViewController.headerView.trackingScrollDidChangeAdjustedContentInset(scrollView)
    }
  }
- (void)scrollViewDidChangeAdjustedContentInset:(UIScrollView *)scrollView {
  if (@available(iOS 11.0, *)) {
    [self.appBarViewController.headerView
        trackingScrollViewDidChangeAdjustedContentInset:scrollView];
  }
}

API changes

AppBar+MaterialTheming

New extension.

FlexibleHeader

MDCFlexibleHeaderView

new method: -trackingScrollViewDidChangeAdjustedContentInset: in MDCFlexibleHeaderView

MDCFlexibleHeaderView()

new category: MDCFlexibleHeaderView()

removed category: MDCFlexibleHeaderView()

modified property: contentView in MDCFlexibleHeaderView()

Type of change: parent.usr
From: c:objc(ext)MDCFlexibleHeaderView@MDCFlexibleHeaderView.h@14987
To: c:objc(ext)MDCFlexibleHeaderView@MDCFlexibleHeaderView.h@15448

TextFields+Theming

New extension.

Changes

ActionSheet

AppBar

BottomNavigation

FlexibleHeader

Ink

ShadowElevations

ShadowLayer

TextFields

private/Snapshot

Multi-component changes

v79.1.1

14 Mar 13:47
Compare
Choose a tag to compare

This patch release fixes a bug in BottomNavigation where the icons were not showing up correctly.

Bugs closed in this release

API changes

Component changes

BottomNavigation

v79.1.0

13 Mar 17:00
Compare
Choose a tag to compare

This minor release increases our snapshot testing coverage and introduces a migration flag for
including UIAccessibilityTraitButton in MDCButton's accessibilityTraits.

New features

It is now possible to set accessibilityTraits on MDCButton to a custom value that
does not include UIAccessibilityTraitButton. To enable this new behavior you must first set
accessibilityTraitsIncludesButton = NO. This flag will eventually default to NO and then be
deprecated/deleted.

API changes

Buttons

MDCButton

new property: accessibilityTraitsIncludesButton in MDCButton

Changes

ActionSheet

ActivityIndicator

BottomNavigation

Buttons

Collections

List

NavigationBar

PageControl

ProgressView

Ripple

Snackbar

Tabs

Typography

Multi-component changes

v79.0.1

08 Mar 23:51
Compare
Choose a tag to compare

This patch release removes NS_REQUIRES_SUPER from several MDCCollectionViewController APIs, removing the requirement to call super.

API changes

Collections

MDCCollectionViewController

Type of change: Declaration
From: - (void)collectionView:(nonnull UICollectionView *)collectionView didHighlightItemAtIndexPath:(nonnull NSIndexPath *)indexPath NS_REQUIRES_SUPER;
To: - (void)collectionView:(nonnull UICollectionView *)collectionView didHighlightItemAtIndexPath:(nonnull NSIndexPath *)indexPath;

Component changes

Collections

v79.0.0

08 Mar 13:09
Compare
Choose a tag to compare

This major release introduces breaking changes for Swift code that makes use of the MDCContainerScheme and MDCContainerScheming types. It also includes breaking changes for Shapes header files and completes the graduation of Shapes to a production-ready state.

Breaking changes

MDCContainerScheming's and MDCContainerScheme's colorScheme and typographyScheme are now both nonnull. This change will require changes in Swift code that make use of these APIs.

All Shapes headers have been renamed, dropping their New suffix where applicable.

New features

BottomNavigation

BottomNavigation has two new properties: sizeThatFitsIncludesSafeArea and barItemsBottomAnchor.

See components/BottomNavigation/README.md for more details on the sizeThatFitsIncludesSafeArea property.

barItemsBottomAnchor allows anchoring the Bottom Navigation bar to the safe area layout guide. This API is available on iOS 9.0 and above. Example usage:

if (@available(iOS 11.0, *)) {
  [navigationBar.barItemsBottomAnchor
      constraintEqualToAnchor:view.safeAreaLayoutGuide.bottomAnchor]
      .active = YES;
}

FlexibleHeader

MDCFlexibleHeaderViewController introduces a new safeAreaDelegate that can be used to change which view controller is used when extracting top safe area insets.

API changes

BottomNavigation

MDCBottomNavigationBar

new property: sizeThatFitsIncludesSafeArea in MDCBottomNavigationBar

new property: barItemsBottomAnchor in MDCBottomNavigationBar

FlexibleHeader

MDCFlexibleHeaderSafeAreaDelegate

new method: -flexibleHeaderViewControllerTopSafeAreaInsetViewController: in MDCFlexibleHeaderSafeAreaDelegate

new protocol: MDCFlexibleHeaderSafeAreaDelegate

MDCFlexibleHeaderViewController

new property: safeAreaDelegate in MDCFlexibleHeaderViewController

ContainerScheme

MDCContainerScheming

modified property: colorScheme in MDCContainerScheming

Type of change: Swift declaration
From: var colorScheme: Any? { get }
To: var colorScheme: Any { get }

modified property: colorScheme in MDCContainerScheming

Type of change: Declaration
From: @property (readonly, nonatomic, nullable) id colorScheme;
To: @property (readonly, nonatomic, nonnull) id colorScheme;

modified property: typographyScheme in MDCContainerScheming

Type of change: Swift declaration
From: var typographyScheme: Any? { get }
To: var typographyScheme: Any { get }

modified property: typographyScheme in MDCContainerScheming

Type of change: Declaration
From: @property (readonly, nonatomic, nullable) id typographyScheme;
To: @property (readonly, nonatomic, nonnull) id typographyScheme;

MDCContainerScheme

modified property: colorScheme in MDCContainerScheme

Type of change: Swift declaration
From: var colorScheme: UnsafeMutablePointer<Int32>? { get set }
To: var colorScheme: UnsafeMutablePointer<Int32> { get set }

modified property: colorScheme in MDCContainerScheme

Type of change: Declaration
From: @property(nonatomic, nullable, readwrite) MDCSemanticColorScheme *colorScheme
To: @property (assign, readwrite, nonatomic, nonnull) int *colorScheme;

modified property: shapeScheme in MDCContainerScheme

Type of change: Declaration
From: @property(nonatomic, nullable, readwrite) MDCShapeScheme *shapeScheme
To: @property (assign, readwrite, nonatomic, nullable) int *shapeScheme;

modified property: typographyScheme in MDCContainerScheme

Type of change: Swift declaration
From: var typographyScheme: UnsafeMutablePointer<Int32>? { get set }
To: var typographyScheme: UnsafeMutablePointer<Int32> { get set }

modified property: typographyScheme in MDCContainerScheme

Type of change: Declaration
From: @property(nonatomic, nullable, readwrite) MDCTypographyScheme *typographyScheme
To: @property (assign, readwrite, nonatomic, nonnull) int *typographyScheme;

Component changes

Changes

BottomAppBar

BottomNavigation

Dialogs

FlexibleHeader

NavigationDrawer

PageControl

Multi-component changes

v78.0.1

26 Feb 18:53
Compare
Choose a tag to compare

In this patch release we have provided a ChipTextField example along with some Beta theming bug fixes.

Changes

ActionSheet

Dialogs

Ripple

Multi-component changes

v78.0.0

21 Feb 21:20
Compare
Choose a tag to compare

This major release promotes the Shape libraries from private to ready, as well as promoting Action Sheet to ready by migrating it from the MaterialComponentsBeta podspec to the MaterialComponents main podspec. Lastly, we've increased our snapshot test coverage across multiple components.

Breaking changes

Moving both Shape libraries, Shapes and ShapeLibrary, from components/private/ to components/ is a breaking change. Clients need to migrate over and update their imports to point to the new location of the Shape libraries.

API changes

ActionSheet

New component - promoted to Ready.

ShapeLibrary

New component - Migrated to components/ from components/private.

Shapes

New component - Migrated to components/ from components/private.

Component changes

Multi-component breaking changes

Changes

ActionSheet

BottomAppBar

ButtonBar

Buttons

Cards

Dialogs

NavigationDrawer

Ripple

Shapes

Slider

TextFields

Multi-component changes

v77.0.0

15 Feb 13:06
Compare
Choose a tag to compare

77.0.0

In this release we made improvements to BottomNavigationBar and landed stateful ripple in the ripple (beta) component.

Breaking changes

BottomNavigationBar

Removed a deprecated API:

@property(nonatomic, assign) UIEdgeInsets itemsContentInsets 

New features

BottomNavigationBar

Blur

BottomNavigation can use blur in its background when not fully opaque

self.bottomNavBar.backgroundBlurEnabled = YES;

Long item titles

We automatically truncate titles that go out of bounds but added a flag to allow some clients to still overflow.

self.navigationBar.truncatesLongTitles = NO;

Stateful Ripple

We added this new component that simplifies the intersection of states and ripples.

You can set the state of the ripple like so:

    statefulRippleView.isRippleHighlighted = true
...
    statefulRippleView.isSelected = true

API changes

BottomNavigation

MDCBottomNavigationBar

new property: backgroundBlurEffectStyle in MDCBottomNavigationBar

new property: backgroundBlurEnabled in MDCBottomNavigationBar

new property: truncatesLongTitles in MDCBottomNavigationBar

removed property: itemsContentInsets in MDCBottomNavigationBar

Ripple

MDCRippleState

new enum: MDCRippleState

new enum value: MDCRippleStateSelected in MDCRippleState

new enum value: MDCRippleStateDragged in MDCRippleState

new enum value: MDCRippleStateHighlighted in MDCRippleState

new enum value: MDCRippleStateNormal in MDCRippleState

new typedef: MDCRippleState

MDCStatefulRippleView

new class: MDCStatefulRippleView

new method: -rippleColorForState: in MDCStatefulRippleView

new property: selected in MDCStatefulRippleView

new property: allowsSelection in MDCStatefulRippleView

new property: rippleHighlighted in MDCStatefulRippleView

new method: -setRippleColor:forState: in MDCStatefulRippleView

new property: dragged in MDCStatefulRippleView

Component changes

Changes

BottomNavigation

Dialogs

Ripple

Multi-component changes

v76.1.2

08 Feb 22:09
Compare
Choose a tag to compare

76.1.2

Fix build tooling.


v76.1.1

07 Feb 22:50
Compare
Choose a tag to compare

76.1.1

Fix Cocoapods validation failures.

76.1.0

Add additional snapshot tests and mark outdated theming API as deprecated.

New deprecations

The previous theming API is being deprecated in favor of MDCContainerScheme.
Bottom Navigation's itemsContentInsets in is being deprecated as it is no longer used internally.

Changes

AppBar

BottomAppBar

BottomNavigation

Dialogs

Multi-component changes