Skip to content

Releases: material-components/material-components-ios

v66.0.0

04 Oct 18:11
Compare
Choose a tag to compare

Shapes updated it's interface.
ActionSheet improvements.
List added a typography themer.

Breaking changes

Shapes updated its API. See #5247 for details.

API changes

List+TypographyThemer

New extension.

Component changes

ActionSheet

BottomNavigation

BottomSheet

Buttons

Cards

Chips

Dialogs

FlexibleHeader

List

NavigationDrawer

Tabs

TextFields

schemes/Shape


v65.0.0

27 Sep 12:30
Compare
Choose a tag to compare

65.0.0

Bottom App Bar got a floatingButtonVerticalOffset property.
ActionSheets continued work. (still in alpha).
AlertController in dialogs: Incremental improvements to bring it up to the design guidelines and so that a themer can style it.
Snackbar API for accessibility.
MDCAppBarTextColorAccessibilityMutator a deprecated class got deleted.

Breaking changes

MDCAppBarTextColorAccessibilityMutator a deprecated class got deleted.

New features

ActionSheet

Action sheet got the color and typography themers.

let actionSheet = MDCActionSheetController()
MDCActionSheetColorThemer.applySemanticColorScheme(colorScheme, to: actionSheet)
MDCActionSheetTypographyThemer.applyTypographyScheme(typographyScheme, to: actionSheet)

BottomAppBar

Bottom App Bar got a new property to offset the floating button.

bottomAppBar.floatingButtonVerticalOffset = 5.0f;

AlertController

AlertController got a themer

 MDCAlertScheme *alertScheme = [[MDCAlertScheme alloc] init];
alertScheme.colorScheme = self.colorScheme;
alertScheme.typographyScheme = self.typographyScheme;
[MDCAlertControllerThemer applyScheme:alertScheme toAlertController:alertController];

Snackbar

To make Snackbars with action require a user action set the this property to YES.

manager.shouldEnableAccessibilityViewIsModal = YES;

API changes

ActionSheet+ColorThemer

New extension.

ActionSheet

MDCActionSheetController

new property: messageTextColor in MDCActionSheetController

new property: titleTextColor in MDCActionSheetController

new property: inkColor in MDCActionSheetController

new property: actionTintColor in MDCActionSheetController

new property: imageRenderingMode in MDCActionSheetController

new property: actionTextColor in MDCActionSheetController

BottomAppBar

MDCBottomAppBarView

new property: floatingButtonVerticalOffset in MDCBottomAppBarView

Dialogs

MDCAlertController

new property: titleAlignment in MDCAlertController

MDCAlertControllerView

new property: titleAlignment in MDCAlertControllerView

Snackbar

MDCSnackbarManager

new property: shouldEnableAccessibilityViewIsModal in MDCSnackbarManager

Component changes

ActionSheet

AppBar

BottomAppBar

Dialogs

FlexibleHeader

NavigationDrawer

ShadowLayer

Snackbar

TextFields

v64.0.0

21 Sep 19:45
Compare
Choose a tag to compare

64.0.0

In this release
AlertControllers added a cornerRadius property to specify its shape.
FlexibleHeader added disableContentInsetAdjustmentWhenContentInsetAdjustmentBehaviorIsNever to let clients choose if the scrollview can adjust the contentInsets.
ChipField added showChipsDeleteButton to turn on the delete button on chips.
BottonSheet added preferredSheetHeight to let clients define a non half screen height.
Shape Subsystem integrated into many components including Button Cards and Chips.

Breaking changes

Card Buttons and Chips all are using the shape subsystem, which subtly changed the way their corner
radii are rendered.

New features

AlertControllers added a cornerRadius

A property to specify its shape.

MDCAlertController *alert = [MDCAlertController alertControllerWithTitle:@"title"
                                                               message:@"message"];
[alert addAction:[MDCAlertAction actionWithTitle:@"action1" handler:nil]];
alert.cornerRadius = cornerRadius;

FlexibleHeader added disableContentInsetAdjustmentWhenContentInsetAdjustmentBehaviorIsNever

To make it easier to support scrollviews and content insets

_scrollView = [[UIScrollView alloc] initWithFrame:self.view.bounds];
if (@available(iOS 11.0, *)) {
_scrollView.contentInsetAdjustmentBehavior = UIScrollViewContentInsetAdjustmentNever;
}

ChipField added showChipsDeleteButton

Turns on the delete button on chips.

var chipField = MDCChipField()
chipField.frame = .zero
chipField.delegate = self
chipField.textField.placeholderLabel.text = "This is a chip field."
chipField.showChipsDeleteButton = true

BottonSheet added preferredSheetHeight to let clients define a non half screen height.

presentationController = [[MDCBottomSheetPresentationController alloc]
      initWithPresentedViewController:stubPresentedViewController
             presentingViewController:stubPresentingViewController];
presentationController.preferredSheetHeight = 100;

API changes

BottomSheet

MDCBottomSheetTransitionController

new property: preferredSheetHeight in MDCBottomSheetTransitionController

MDCBottomSheetPresentationController

new property: preferredSheetHeight in MDCBottomSheetPresentationController

Buttons+ButtonThemer

MDCButtonScheming

new property: shapeScheme in MDCButtonScheming

MDCButtonScheme

new property: shapeScheme in MDCButtonScheme

Buttons+ShapeThemer

New component.

Chips+ChipThemer

MDCChipViewScheming

new property: shapeScheme in MDCChipViewScheming

MDCChipViewScheme

new property: shapeScheme in MDCChipViewScheme

Chips

MDCChipField

new property: showChipsDeleteButton in MDCChipField

Chips+ShapeThemer

New component.

Dialogs+DialogThemer

New component.

Dialogs

MDCAlertController

new property: cornerRadius in MDCAlertController

MDCAlertControllerView

new property: cornerRadius in MDCAlertControllerView

FlexibleHeader

MDCFlexibleHeaderView

new property: disableContentInsetAdjustmentWhenContentInsetAdjustmentBehaviorIsNever in MDCFlexibleHeaderView

Component changes

ActionSheet

AppBar

BottomSheet

Buttons

Breaking changes

Cards

Chips

Breaking changes

Dialogs

FlexibleHeader

PageControl

Tabs

TextFields

schemes/Shape

v63.0.0

12 Sep 21:01
Compare
Choose a tag to compare

This major release adds additional support for shape theming to BottomSheet and Cards and
improvements to ActionSheets, BottomAppBar, BottomNavigation, Dialogs, NavigationBar, and
TextFields.

Breaking changes

Cards

This is a breaking change due to the addition of the shapeScheme property to the MDCCardScheming
protocol. If you have created a type that conforms to MDCCardScheming you will need to implement the
shapeScheme property now as well.

New features

  1. ActionSheet's backgroundColor can now be customized.
  2. BottomAppBar has a new surface variant color themer API. Documentation
  3. BottomNavigation now allows you to fetch a view for a given item using the new viewForItem: API.
  4. BottomSheet and Cards each now have a Shape themer.
  5. NavigationBar now allows you to set a different tint color for the leading and trailing items.

API changes

ActionSheet

MDCActionSheetController

modified property: backgroundColor in MDCActionSheetController

Type of change: Declaration
From: @property(nonatomic, nonnull, strong) UIColor *backgroundColor
To: @property (readwrite, strong, nonatomic, nonnull) UIColor *backgroundColor;

BottomAppBar+ColorThemer

MDCBottomAppBarColorThemer

new class method: +applySurfaceVariantWithSemanticColorScheme:toBottomAppBarView: in MDCBottomAppBarColorThemer

BottomAppBar

MDCBottomAppBarView

new property: trailingBarItemsTintColor in MDCBottomAppBarView

new property: leadingBarItemsTintColor in MDCBottomAppBarView

BottomNavigation

MDCBottomNavigationBar

new method: -viewForItem: in MDCBottomNavigationBar

BottomSheet+ShapeThemer

New extension.

Cards+CardThemer

MDCCardScheme

new property: shapeScheme in MDCCardScheme

MDCCardScheming

new property: shapeScheme in MDCCardScheming

Cards+ShapeThemer

New extension.

NavigationBar

MDCNavigationBar

new property: leadingBarItemsTintColor in MDCNavigationBar

new property: trailingBarItemsTintColor in MDCNavigationBar

ShapeScheme

New component.

Component changes

ActionSheet

BottomAppBar

BottomNavigation

BottomSheet

Cards

Dialogs

FlexibleHeader

HeaderStackView

Ink

List

MaskedTransition

NavigationBar

NavigationDrawer

TextFields

schemes/Shape

v62.2.0

07 Sep 21:28
Compare
Choose a tag to compare

This hotfix minor release rolls back a behavioral change in Dialogs that was introduced in v60.0.0.

Component changes

Dialogs

v62.1.0

05 Sep 19:34
Compare
Choose a tag to compare

This minor release introduces a new auto-sizing List cell implementation, improvements to
ActionSheet, the ability to modify casing behavior on NavigationBar, and bug fixes.

New features

You can now set an accessibilityIdentifier on ActionSheet actions:

let action = MDCActionSheetAction(title: "Title", image: nil, handler: nil)
action.accessibilityIdentifier = "Some identifier"
actionSheet.addAction(action)

ActionSheet now has a typography themer.

ButtonBar now provides a mechanism for reacting to size changes of its buttons via its delegate.

There is a new self-sizing collection view cell.

NavigationBar exposes a new uppercasesButtonTitles property that can be used to change the
auto-uppercasing behavior of the buttons. By default this property is enabled.

API changes

ActionSheet

MDCActionSheetAction

new property: accessibilityIdentifier in MDCActionSheetAction

modified class: MDCActionSheetAction

Type of change: Swift declaration
From: class MDCActionSheetAction : NSObject, NSCopying
To: class MDCActionSheetAction : NSObject, NSCopying, UIAccessibilityIdentification

modified class: MDCActionSheetAction

Type of change: Declaration
From: @interface MDCActionSheetAction : NSObject <NSCopying>
To: @interface MDCActionSheetAction : NSObject <NSCopying, UIAccessibilityIdentification>

MDCActionSheetController

new property: transitionController in MDCActionSheetController

ActionSheet+TypographyThemer

New component.

ButtonBar

MDCButtonBarDelegate

new method: -buttonBarDidInvalidateIntrinsicContentSize: in MDCButtonBarDelegate

MDCButtonBar

new property: uppercasesButtonTitles in MDCButtonBar

new property: delegate in MDCButtonBar

FlexibleHeader+CanAlwaysExpandToMaximumHeight

New component.

General changes

Component changes

ActionSheet

BottomAppBar

BottomNavigation

ButtonBar

FlexibleHeader

List

NavigationBar

ProgressView

ShadowElevations

Tabs

TextFields

v62.0.0

31 Aug 14:37
Compare
Choose a tag to compare

This major release reverts the addition of the new canAlwaysExpandToMaximumHeight behavior for the FlexibleHeader introduced in v61.0.0. More details on the commit that was reverted: 2b3722f

FlexibleHeader

Changes

v61.0.0

30 Aug 04:30
Compare
Choose a tag to compare

WARNING: This release has a known regression in FlexibleHeader. Please consider skipping this release.

In this breaking release we drop support for Xcode 8 and landed two new components in an Alpha state (not ready for clients to use yet).

Breaking changes

No longer support Xcode 8.

New deprecations

  • -buttonBar:viewForItem:layoutHints: in MDCButtonBarDelegate

New features

More accessibility APIs

new property: accessibilityIdentifier in MDCAlertAction
new property: accessibilityHint in MDCSnackbarMessageView
new property: accessibilityLabel in MDCSnackbarMessageView
new property: accessibilityHint in MDCSnackbarMessage

Alpha components

  • ActionSheets

ActionSheets present a list of actions from the bottom of the screen.

  • NavigationDrawer

NavigationDrawer provides a container that presents from the bottom of the screen and also responds
to drag gestures to flick to full screen, half screen or off screen.

API changes

ActionSheet

New component.

ButtonBar

MDCButtonBarDelegate

modified method: -buttonBar:viewForItem:layoutHints: in MDCButtonBarDelegate

Type of change: Deprecation message
From: ``
To: There will be no replacement for this API.

modified method: -buttonBar:viewForItem:layoutHints: in MDCButtonBarDelegate

Type of change: Swift declaration
From: func buttonBar(_ buttonBar: MDCButtonBar, viewForItem barButtonItem: Any!, layoutHints: Any!) -> Any!
To: optional func buttonBar(_ buttonBar: MDCButtonBar, viewForItem barButtonItem: Any!, layoutHints: Any!) -> Any!

Dialogs

MDCAlertAction

new property: accessibilityIdentifier in MDCAlertAction

modified class: MDCAlertAction

Type of change: Declaration
From: @interface MDCAlertAction : NSObject <NSCopying>
To: @interface MDCAlertAction : NSObject <NSCopying, UIAccessibilityIdentification>

FlexibleHeader+CanAlwaysExpandToMaximumHeight

New component.

NavigationBar

MDCNavigationBar

modified property: titleTextAttributes in MDCNavigationBar

Type of change: Declaration
From: @property(nonatomic, copy, nullable) NSDictionary<NSAttributedStringKey, id> *titleTextAttributes
To: @property (readwrite, copy, nonatomic, nullable) NSDictionary<NSAttributedStringKey, id> *titleTextAttributes;

NavigationDrawer

New component.

Snackbar

MDCSnackbarMessageView

new property: accessibilityHint in MDCSnackbarMessageView

new property: accessibilityLabel in MDCSnackbarMessageView

MDCSnackbarMessage

new property: accessibilityHint in MDCSnackbarMessage

MDCSnackbarMessageView()

new category: MDCSnackbarMessageView()

removed category: MDCSnackbarMessageView()

modified property: snackbarMessageViewTextColor in MDCSnackbarMessageView()

Type of change: parent.usr
From: c:objc(ext)MDCSnackbarMessageView@MDCSnackbarMessageView.h@3125
To: c:objc(ext)MDCSnackbarMessageView@MDCSnackbarMessageView.h@3411

Component changes

Tabs

Changes

AppBar

Changes

Ink

Changes

ActionSheet

Changes

CollectionCells

Changes

Buttons

Changes

ButtonBar

Changes

TextFields

Changes

Chips

Changes

Snackbar

Changes

NavigationDrawer

Changes

BottomAppBar

Changes

Slider

Changes

NavigationBar

Changes

LibraryInfo

Changes

ShadowLayer

Changes

List

Changes

  • [Remove all __IPHONE_11_0 checks now that we no longer...
Read more

v60.3.0

27 Aug 18:17
Compare
Choose a tag to compare

This minor release introduces a new behavioral flag for changing the title font size on
MDCNavigationBar.

New features

MDCNavigationBar has a new flag that, once enabled, allows you to set a font with any size.

MDCNavigationBar *navigationBar = [[MDCNavigationBar alloc] init];
navigationBar.allowAnyTitleFontSize = YES;
UIFont *font = [UIFont systemFontOfSize:24];
navigationBar.titleFont = font; // Font size will actually be 24

API changes

NavigationBar

MDCNavigationBar

new property: allowAnyTitleFontSize in MDCNavigationBar

Component changes

NavigationBar

Changes

v60.2.0

23 Aug 17:00
Compare
Choose a tag to compare

60.2.0

In this minor release we updated examples imports, added an API to set the ink color of buttons
and started the deprecation of some AppBar APIs.

New deprecations

  • Deprecated MDCAppBarTextColorAccessibilityMutator.

Will be deprecated

FlexibleHeader

New features

  • AlertController got a new buttonInkColor property so you can specify the color of the ink.
  MDCAlertController *alert = [MDCAlertController alertControllerWithTitle:@"title"
                                                                   message:@"message"];
  alert.buttonInkColor = testColor;

API changes

AppBar

MDCAppBarTextColorAccessibilityMutator

deprecated class: MDCAppBarTextColorAccessibilityMutator

deprecated method: -mutate: in MDCAppBarTextColorAccessibilityMutator

Dialogs

MDCAlertController

new property: buttonInkColor in MDCAlertController

MDCAlertControllerView

new property: buttonInkColor in MDCAlertControllerView

FlexibleHeader

MDCFlexibleHeaderView()

moved category: MDCFlexibleHeaderView()

modified property: contentView in MDCFlexibleHeaderView()

Component changes

MaskedTransition

Changes

FeatureHighlight

Changes

AppBar

Changes

Buttons

Changes

TextFields

Changes

Chips

Changes

Cards

Changes

BottomAppBar

Changes

ShadowLayer

Changes

List

Changes

ActivityIndicator

Changes

BottomSheet

Changes

Dialogs

Changes

BottomNavigation

Changes

AnimationTiming

Changes

HeaderStackView

Changes

FlexibleHeader

Changes

ProgressView

Changes