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.
MDCAppBarTextColorAccessibilityMutator a deprecated class got deleted.
Action sheet got the color and typography themers.
let actionSheet = MDCActionSheetController() MDCActionSheetColorThemer.applySemanticColorScheme(colorScheme, to: actionSheet)
MDCActionSheetTypographyThemer.applyTypographyScheme(typographyScheme, to: actionSheet)
Bottom App Bar got a new property to offset the floating button.
bottomAppBar.floatingButtonVerticalOffset = 5.0f;
AlertController got a themer
MDCAlertScheme *alertScheme = [[MDCAlertScheme alloc] init]; alertScheme.colorScheme = self.colorScheme; alertScheme.typographyScheme = self.typographyScheme; [MDCAlertControllerThemer applyScheme:alertScheme toAlertController:alertController];
To make Snackbars with action require a user action set the this property to YES.
manager.shouldEnableAccessibilityViewIsModal = YES;
New extension.
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
new property: floatingButtonVerticalOffset
in MDCBottomAppBarView
new property: titleAlignment
in MDCAlertController
new property: titleAlignment
in MDCAlertControllerView
new property: shouldEnableAccessibilityViewIsModal
in MDCSnackbarManager
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.
Card Buttons and Chips all are using the shape subsystem, which subtly changed the way their corner radii are rendered.
cornerRadius
A property to specify its shape.
MDCAlertController *alert = [MDCAlertController alertControllerWithTitle:@"title" message:@"message"]; [alert addAction:[MDCAlertAction actionWithTitle:@"action1" handler:nil]]; alert.cornerRadius = cornerRadius;
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; }
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
preferredSheetHeight
to let clients define a non half screen height.presentationController = [[MDCBottomSheetPresentationController alloc] initWithPresentedViewController:stubPresentedViewController presentingViewController:stubPresentingViewController]; presentationController.preferredSheetHeight = 100;
new property: preferredSheetHeight
in MDCBottomSheetTransitionController
new property: preferredSheetHeight
in MDCBottomSheetPresentationController
new property: shapeScheme
in MDCButtonScheming
new property: shapeScheme
in MDCButtonScheme
New component.
new property: shapeScheme
in MDCChipViewScheming
new property: shapeScheme
in MDCChipViewScheme
new property: showChipsDeleteButton
in MDCChipField
New component.
New component.
new property: cornerRadius
in MDCAlertController
new property: cornerRadius
in MDCAlertControllerView
new property: disableContentInsetAdjustmentWhenContentInsetAdjustmentBehaviorIsNever
in MDCFlexibleHeaderView
updatePreferredSheetHeight
. (#5115) (Robert Moore)sheetView
a property. (#5122) (Robert Moore)Breaking: Integrate the shape themer into the MDCButton themer (#5120) (Yarden Eitan)
Add the Floating Button Shape themer to the Floating Button themer (#5132) (Yarden Eitan)
Addition of a FAB shape themer (#5131) (Yarden Eitan)
Addition of a Shape Themer for MDCButton (#5119) (Yarden Eitan)
Integrate the FAB shape themer into our examples (#5133) (Yarden Eitan)
Integration of the button shape themer into the examples (#5121) (Yarden Eitan)
[Shapes] Bug fix for getting the wrong backgroundColor when shapeGenerator is set. (#5127) (Yarden Eitan)
Breaking: Integrate the shape themer into the chip themer (#5112) (Yarden Eitan)
Add client the ability to delete chips in a chip field (#5135) (Cody Weaver)
Addition of a Shape Themer (#5111) (Yarden Eitan)
Integration of the chip themer into the examples (#5113) (Yarden Eitan)
Support RTL in MDCChipCollectionViewFlowLayout (#5079) (jsaletta)
Update example (#5118) (Cody Weaver)
[Shapes] Bug fix for getting the wrong backgroundColor when shapeGenerator is set. (#5127) (Yarden Eitan)
This major release adds additional support for shape theming to BottomSheet and Cards and improvements to ActionSheets, BottomAppBar, BottomNavigation, Dialogs, NavigationBar, and TextFields.
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.
backgroundColor
can now be customized.viewForItem:
API.modified property: backgroundColor
in MDCActionSheetController
Type of change: | Declaration |
---|---|
From: | @property(nonatomic, nonnull, strong) UIColor *backgroundColor |
To: | @property (readwrite, strong, nonatomic, nonnull) UIColor *backgroundColor; |
new class method: +applySurfaceVariantWithSemanticColorScheme:toBottomAppBarView:
in MDCBottomAppBarColorThemer
new property: trailingBarItemsTintColor
in MDCBottomAppBarView
new property: leadingBarItemsTintColor
in MDCBottomAppBarView
new method: -viewForItem:
in MDCBottomNavigationBar
New extension.
new property: shapeScheme
in MDCCardScheme
new property: shapeScheme
in MDCCardScheming
New extension.
new property: leadingBarItemsTintColor
in MDCNavigationBar
new property: trailingBarItemsTintColor
in MDCNavigationBar
New component.
This hotfix minor release rolls back a behavioral change in Dialogs that was introduced in v60.0.0.
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.
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.
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> |
new property: transitionController
in MDCActionSheetController
New component.
new method: -buttonBarDidInvalidateIntrinsicContentSize:
in MDCButtonBarDelegate
new property: uppercasesButtonTitles
in MDCButtonBar
new property: delegate
in MDCButtonBar
New component.
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: https://github.com/material-components/material-components-ios/commit/2b3722f7b8cc7df131a8b33695990c99931c0e1b
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).
No longer support Xcode 8.
-buttonBar:viewForItem:layoutHints:
in MDCButtonBarDelegate
new property: accessibilityIdentifier
in MDCAlertAction
new property: accessibilityHint
in MDCSnackbarMessageView
new property: accessibilityLabel
in MDCSnackbarMessageView
new property: accessibilityHint
in MDCSnackbarMessage
ActionSheets present a list of actions from the bottom of the screen.
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.
New component.
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! |
new property: accessibilityIdentifier
in MDCAlertAction
modified class: MDCAlertAction
Type of change: | Declaration |
---|---|
From: | @interface MDCAlertAction : NSObject <NSCopying> |
To: | @interface MDCAlertAction : NSObject <NSCopying, UIAccessibilityIdentification> |
New component.
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; |
New component.
new property: accessibilityHint
in MDCSnackbarMessageView
new property: accessibilityLabel
in MDCSnackbarMessageView
new property: accessibilityHint
in MDCSnackbarMessage
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 |
accessibilityHint
. (#4924) (Robert Moore)This minor release introduces a new behavioral flag for changing the title font size on MDCNavigationBar.
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
new property: allowAnyTitleFontSize
in MDCNavigationBar
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.
MDCAppBarTextColorAccessibilityMutator
.MDCAlertController *alert = [MDCAlertController alertControllerWithTitle:@"title" message:@"message"]; alert.buttonInkColor = testColor;
deprecated class: MDCAppBarTextColorAccessibilityMutator
deprecated method: -mutate:
in MDCAppBarTextColorAccessibilityMutator
new property: buttonInkColor
in MDCAlertController
new property: buttonInkColor
in MDCAlertControllerView
moved category: MDCFlexibleHeaderView()
modified property: contentView
in MDCFlexibleHeaderView()
safeAreaInsets
availability check (#4775) (Robert Moore)This major release introduces a breaking change for Swift libraries using FlexibleHeader. This change also introduces a migration guide for color schemes along, changes to the Snackbar's singleton pattern, and updated button theming in Dialogs.
This breaking change only affects Swift code and requires the following changes.
// Before .preferredStatusBarStyle() // After .preferredStatusBarStyle
FlexibleHeader has a new inferPreferredStatusBarStyle
API that allows you to set an explicity preferredStatusBarStyle
on the MDCFlexibleHeaderViewController
.
An example of setting an explicit preferredStatusBarStyle
:
flexibleHeaderViewController.inferPreferredStatusBarStyle = false flexibleHeaderViewController.preferredStatusBarStyle = .lightContent
MDCColorScheme
and MDCBasicColorScheme
will both be deprecated on the following timeline:
Learn more by reading the migration guide.
new category: MDCActivityIndicatorColorThemer(ToBeDeprecated)
modified class method: +applyColorScheme:toActivityIndicator:
in MDCActivityIndicatorColorThemer(ToBeDeprecated)
Type of change: | parent.usr |
---|---|
From: | c:objc(cs)MDCActivityIndicatorColorThemer |
To: | c:objc(cy)MDCActivityIndicatorColorThemer@ToBeDeprecated |
new category: MDCAppBarColorThemer(ToBeDeprecated)
modified class method: +applyColorScheme:toAppBar:
in MDCAppBarColorThemer(ToBeDeprecated)
Type of change: | parent.usr |
---|---|
From: | c:objc(cs)MDCAppBarColorThemer |
To: | c:objc(cy)MDCAppBarColorThemer@ToBeDeprecated |
new category: MDCBottomAppBarColorThemer(ToBeDeprecated)
modified class method: +applyColorScheme:toBottomAppBarView:
in MDCBottomAppBarColorThemer(ToBeDeprecated)
Type of change: | parent.usr |
---|---|
From: | c:objc(cs)MDCBottomAppBarColorThemer |
To: | c:objc(cy)MDCBottomAppBarColorThemer@ToBeDeprecated |
new category: MDCBottomNavigationBarColorThemer(ToBeDeprecated)
modified class method: +applyColorScheme:toBottomNavigationBar:
in MDCBottomNavigationBarColorThemer(ToBeDeprecated)
Type of change: | parent.usr |
---|---|
From: | c:objc(cs)MDCBottomNavigationBarColorThemer |
To: | c:objc(cy)MDCBottomNavigationBarColorThemer@ToBeDeprecated |
new category: MDCButtonBarColorThemer(ToBeDeprecated)
modified class method: +applyColorScheme:toButtonBar:
in MDCButtonBarColorThemer(ToBeDeprecated)
Type of change: | parent.usr |
---|---|
From: | c:objc(cs)MDCButtonBarColorThemer |
To: | c:objc(cy)MDCButtonBarColorThemer@ToBeDeprecated |
new category: MDCButtonColorThemer(ToBeDeprecated)
modified class method: +applySemanticColorScheme:toRaisedButton:
in MDCButtonColorThemer(ToBeDeprecated)
Type of change: | parent.usr |
---|---|
From: | c:objc(cs)MDCButtonColorThemer |
To: | c:objc(cy)MDCButtonColorThemer@ToBeDeprecated |
modified class method: +applySemanticColorScheme:toFlatButton:
in MDCButtonColorThemer(ToBeDeprecated)
Type of change: | parent.usr |
---|---|
From: | c:objc(cs)MDCButtonColorThemer |
To: | c:objc(cy)MDCButtonColorThemer@ToBeDeprecated |
modified class method: +applyColorScheme:toButton:
in MDCButtonColorThemer(ToBeDeprecated)
Type of change: | parent.usr |
---|---|
From: | c:objc(cs)MDCButtonColorThemer |
To: | c:objc(cy)MDCButtonColorThemer@ToBeDeprecated |
modified class method: +applySemanticColorScheme:toButton:
in MDCButtonColorThemer(ToBeDeprecated)
Type of change: | parent.usr |
---|---|
From: | c:objc(cs)MDCButtonColorThemer |
To: | c:objc(cy)MDCButtonColorThemer@ToBeDeprecated |
modified class method: +applySemanticColorScheme:toFloatingButton:
in MDCButtonColorThemer(ToBeDeprecated)
Type of change: | parent.usr |
---|---|
From: | c:objc(cs)MDCButtonColorThemer |
To: | c:objc(cy)MDCButtonColorThemer@ToBeDeprecated |
new category: MDCChipViewColorThemer(ToBeDeprecated)
modified class method: +applySemanticColorScheme:toStrokedChipView:
in MDCChipViewColorThemer(ToBeDeprecated)
Type of change: | parent.usr |
---|---|
From: | c:objc(cs)MDCChipViewColorThemer |
To: | c:objc(cy)MDCChipViewColorThemer@ToBeDeprecated |
new category: MDCAlertColorThemer(ToBeDeprecated)
modified class method: +applyColorScheme:
in MDCAlertColorThemer(ToBeDeprecated)
Type of change: | parent.usr |
---|---|
From: | c:objc(cs)MDCAlertColorThemer |
To: | c:objc(cy)MDCAlertColorThemer@ToBeDeprecated |
new category: MDCFeatureHighlightColorThemer(ToBeDeprecated)
modified class method: +applyColorScheme:toFeatureHighlightView:
in MDCFeatureHighlightColorThemer(ToBeDeprecated)
Type of change: | parent.usr |
---|---|
From: | c:objc(cs)MDCFeatureHighlightColorThemer |
To: | c:objc(cy)MDCFeatureHighlightColorThemer@ToBeDeprecated |
new category: MDCFlexibleHeaderColorThemer(ToBeDeprecated)
modified class method: +applyColorScheme:toFlexibleHeaderView:
in MDCFlexibleHeaderColorThemer(ToBeDeprecated)
Type of change: | parent.usr |
---|---|
From: | c:objc(cs)MDCFlexibleHeaderColorThemer |
To: | c:objc(cy)MDCFlexibleHeaderColorThemer@ToBeDeprecated |
modified class method: +applyColorScheme:toMDCFlexibleHeaderController:
in MDCFlexibleHeaderColorThemer(ToBeDeprecated)
Type of change: | parent.usr |
---|---|
From: | c:objc(cs)MDCFlexibleHeaderColorThemer |
To: | c:objc(cy)MDCFlexibleHeaderColorThemer@ToBeDeprecated |
new property: preferredStatusBarStyle
in MDCFlexibleHeaderViewController
new property: inferPreferredStatusBarStyle
in MDCFlexibleHeaderViewController
removed method: -preferredStatusBarStyle
in MDCFlexibleHeaderViewController
new category: MDCHeaderStackViewColorThemer(ToBeDeprecated)
modified class method: +applyColorScheme:toHeaderStackView:
in MDCHeaderStackViewColorThemer(ToBeDeprecated)
Type of change: | parent.usr |
---|---|
From: | c:objc(cs)MDCHeaderStackViewColorThemer |
To: | c:objc(cy)MDCHeaderStackViewColorThemer@ToBeDeprecated |
new category: MDCInkColorThemer(ToBeDeprecated)
modified class method: +applyColorScheme:toInkView:
in MDCInkColorThemer(ToBeDeprecated)
Type of change: | parent.usr |
---|---|
From: | c:objc(cs)MDCInkColorThemer |
To: | c:objc(cy)MDCInkColorThemer@ToBeDeprecated |
new category: MDCNavigationBarColorThemer(ToBeDeprecated)
modified class method: +applyColorScheme:toNavigationBar:
in MDCNavigationBarColorThemer(ToBeDeprecated)
Type of change: | parent.usr |
---|---|
From: | c:objc(cs)MDCNavigationBarColorThemer |
To: | c:objc(cy)MDCNavigationBarColorThemer@ToBeDeprecated |
new category: MDCPageControlColorThemer(ToBeDeprecated)
modified class method: +applyColorScheme:toPageControl:
in MDCPageControlColorThemer(ToBeDeprecated)
Type of change: | parent.usr |
---|---|
From: | c:objc(cs)MDCPageControlColorThemer |
To: | c:objc(cy)MDCPageControlColorThemer@ToBeDeprecated |
new category: MDCProgressViewColorThemer(ToBeDeprecated)
modified class method: +applyColorScheme:toProgressView:
in MDCProgressViewColorThemer(ToBeDeprecated)
Type of change: | parent.usr |
---|---|
From: | c:objc(cs)MDCProgressViewColorThemer |
To: | c:objc(cy)MDCProgressViewColorThemer@ToBeDeprecated |
new category: MDCSliderColorThemer(ToBeDeprecated)
modified class method: +applyColorScheme:toSlider:
in MDCSliderColorThemer(ToBeDeprecated)
Type of change: | parent.usr |
---|---|
From: | c:objc(cs)MDCSliderColorThemer |
To: | c:objc(cy)MDCSliderColorThemer@ToBeDeprecated |
modified class method: +defaultSliderLightColorScheme
in MDCSliderColorThemer(ToBeDeprecated)
Type of change: | parent.usr |
---|---|
From: | c:objc(cs)MDCSliderColorThemer |
To: | c:objc(cy)MDCSliderColorThemer@ToBeDeprecated |
modified class method: +defaultSliderDarkColorScheme
in MDCSliderColorThemer(ToBeDeprecated)
Type of change: | parent.usr |
---|---|
From: | c:objc(cs)MDCSliderColorThemer |
To: | c:objc(cy)MDCSliderColorThemer@ToBeDeprecated |
new category: MDCSnackbarColorThemer(Deprecated)
modified class method: +applyColorScheme:toSnackbarMessageView:
in MDCSnackbarColorThemer(Deprecated)
Type of change: | parent.usr |
---|---|
From: | c:objc(cs)MDCSnackbarColorThemer |
To: | c:objc(cy)MDCSnackbarColorThemer@Deprecated |
new property: defaultManager
in MDCSnackbarManager
new property: messageTextColor
in MDCSnackbarManager
new method: -suspendMessagesWithCategory:
in MDCSnackbarManager
new property: buttonFont
in MDCSnackbarManager
new property: snackbarMessageViewShadowColor
in MDCSnackbarManager
new method: -buttonTitleColorForState:
in MDCSnackbarManager
new property: alignment
in MDCSnackbarManager
new method: -showMessage:
in MDCSnackbarManager
new property: shouldApplyStyleChangesToVisibleSnackbars
in MDCSnackbarManager
new method: -setBottomOffset:
in MDCSnackbarManager
new property: messageFont
in MDCSnackbarManager
new property: snackbarMessageViewBackgroundColor
in MDCSnackbarManager
new method: -suspendAllMessages
in MDCSnackbarManager
new property: delegate
in MDCSnackbarManager
new method: -setPresentationHostView:
in MDCSnackbarManager
new method: -resumeMessagesWithToken:
in MDCSnackbarManager
new method: -setButtonTitleColor:forState:
in MDCSnackbarManager
new method: -hasMessagesShowingOrQueued
in MDCSnackbarManager
new method: -dismissAndCallCompletionBlocksWithCategory:
in MDCSnackbarManager
new property: mdc_adjustsFontForContentSizeCategory
in MDCSnackbarManager
new category: MDCSnackbarManager(LegacyAPI)
modified property: snackbarMessageViewBackgroundColor
in MDCSnackbarManager(LegacyAPI)
Type of change: | parent.usr |
---|---|
From: | c:objc(cs)MDCSnackbarManager |
To: | c:objc(cy)MDCSnackbarManager@LegacyAPI |
modified class method: +hasMessagesShowingOrQueued
in MDCSnackbarManager(LegacyAPI)
Type of change: | parent.usr |
---|---|
From: | c:objc(cs)MDCSnackbarManager |
To: | c:objc(cy)MDCSnackbarManager@LegacyAPI |
modified property: shouldApplyStyleChangesToVisibleSnackbars
in MDCSnackbarManager(LegacyAPI)
Type of change: | parent.usr |
---|---|
From: | c:objc(cs)MDCSnackbarManager |
To: | c:objc(cy)MDCSnackbarManager@LegacyAPI |
modified property: delegate
in MDCSnackbarManager(LegacyAPI)
Type of change: | parent.usr |
---|---|
From: | c:objc(cs)MDCSnackbarManager |
To: | c:objc(cy)MDCSnackbarManager@LegacyAPI |
modified class method: +setButtonTitleColor:forState:
in MDCSnackbarManager(LegacyAPI)
Type of change: | parent.usr |
---|---|
From: | c:objc(cs)MDCSnackbarManager |
To: | c:objc(cy)MDCSnackbarManager@LegacyAPI |
modified property: alignment
in MDCSnackbarManager(LegacyAPI)
Type of change: | parent.usr |
---|---|
From: | c:objc(cs)MDCSnackbarManager |
To: | c:objc(cy)MDCSnackbarManager@LegacyAPI |
modified property: messageTextColor
in MDCSnackbarManager(LegacyAPI)
Type of change: | parent.usr |
---|---|
From: | c:objc(cs)MDCSnackbarManager |
To: | c:objc(cy)MDCSnackbarManager@LegacyAPI |
modified class method: +suspendAllMessages
in MDCSnackbarManager(LegacyAPI)
Type of change: | parent.usr |
---|---|
From: | c:objc(cs)MDCSnackbarManager |
To: | c:objc(cy)MDCSnackbarManager@LegacyAPI |
modified class method: +resumeMessagesWithToken:
in MDCSnackbarManager(LegacyAPI)
Type of change: | parent.usr |
---|---|
From: | c:objc(cs)MDCSnackbarManager |
To: | c:objc(cy)MDCSnackbarManager@LegacyAPI |
modified class method: +showMessage:
in MDCSnackbarManager(LegacyAPI)
Type of change: | parent.usr |
---|---|
From: | c:objc(cs)MDCSnackbarManager |
To: | c:objc(cy)MDCSnackbarManager@LegacyAPI |
modified class method: +setBottomOffset:
in MDCSnackbarManager(LegacyAPI)
Type of change: | parent.usr |
---|---|
From: | c:objc(cs)MDCSnackbarManager |
To: | c:objc(cy)MDCSnackbarManager@LegacyAPI |
modified property: messageFont
in MDCSnackbarManager(LegacyAPI)
Type of change: | parent.usr |
---|---|
From: | c:objc(cs)MDCSnackbarManager |
To: | c:objc(cy)MDCSnackbarManager@LegacyAPI |
modified property: mdc_adjustsFontForContentSizeCategory
in MDCSnackbarManager(LegacyAPI)
Type of change: | parent.usr |
---|---|
From: | c:objc(cs)MDCSnackbarManager |
To: | c:objc(cy)MDCSnackbarManager@LegacyAPI |
modified class method: +dismissAndCallCompletionBlocksWithCategory:
in MDCSnackbarManager(LegacyAPI)
Type of change: | parent.usr |
---|---|
From: | c:objc(cs)MDCSnackbarManager |
To: | c:objc(cy)MDCSnackbarManager@LegacyAPI |
modified class method: +setPresentationHostView:
in MDCSnackbarManager(LegacyAPI)
Type of change: | parent.usr |
---|---|
From: | c:objc(cs)MDCSnackbarManager |
To: | c:objc(cy)MDCSnackbarManager@LegacyAPI |
modified class method: +buttonTitleColorForState:
in MDCSnackbarManager(LegacyAPI)
Type of change: | parent.usr |
---|---|
From: | c:objc(cs)MDCSnackbarManager |
To: | c:objc(cy)MDCSnackbarManager@LegacyAPI |
modified class method: +suspendMessagesWithCategory:
in MDCSnackbarManager(LegacyAPI)
Type of change: | parent.usr |
---|---|
From: | c:objc(cs)MDCSnackbarManager |
To: | c:objc(cy)MDCSnackbarManager@LegacyAPI |
modified property: snackbarMessageViewShadowColor
in MDCSnackbarManager(LegacyAPI)
Type of change: | parent.usr |
---|---|
From: | c:objc(cs)MDCSnackbarManager |
To: | c:objc(cy)MDCSnackbarManager@LegacyAPI |
modified property: buttonFont
in MDCSnackbarManager(LegacyAPI)
Type of change: | parent.usr |
---|---|
From: | c:objc(cs)MDCSnackbarManager |
To: | c:objc(cy)MDCSnackbarManager@LegacyAPI |
new category: MDCTabBarColorThemer(ToBeDeprecated)
modified class method: +applyColorScheme:toTabBar:
in MDCTabBarColorThemer(ToBeDeprecated)
Type of change: | parent.usr |
---|---|
From: | c:objc(cs)MDCTabBarColorThemer |
To: | c:objc(cy)MDCTabBarColorThemer@ToBeDeprecated |
new category: MDCTextFieldColorThemer(ToBeDeprecated)
modified class method: +applyColorScheme:toAllTextInputControllersOfClass:
in MDCTextFieldColorThemer(ToBeDeprecated)
Type of change: | parent.usr |
---|---|
From: | c:objc(cs)MDCTextFieldColorThemer |
To: | c:objc(cy)MDCTextFieldColorThemer@ToBeDeprecated |
modified class method: +applyColorScheme:toTextInputController:
in MDCTextFieldColorThemer(ToBeDeprecated)
Type of change: | parent.usr |
---|---|
From: | c:objc(cs)MDCTextFieldColorThemer |
To: | c:objc(cy)MDCTextFieldColorThemer@ToBeDeprecated |
This patch release undoes some additional App Bar initialization changes that were introduced in v59.2.0.
This patch release reverts an unintentional change in App Bar shadow layer initialization behavior that was introduced in v59.2.0.
This minor release introduces several new improvements to the AppBar component and bug fixes and accessibility improvements to various components.
AppBar's documentation has been updated to reflect all of the most modern APIs and behavioral flags.
AppBar also now exposes a new MDCAppBarViewController
API which is meant to be a more familiar replacement API for MDCAppBar
.
A typical migration diff will look something like so (in Swift):
// Step 1 - let appBar = MDCAppBar() + let appBarViewController = MDCAppBarViewController() // Step 2 - self.addChildViewController(appBar.headerViewController) + self.addChildViewController(appBarViewController) // Step 3 - appBar.addSubviewsToParent() + view.addSubview(appBarViewController.view) + appBarViewController.didMove(toParentViewController: self)
new class method: +applySurfaceVariantWithColorScheme:toAppBarViewController:
in MDCAppBarColorThemer
new class method: +applyColorScheme:toAppBarViewController:
in MDCAppBarColorThemer
new property: appBarViewController
in MDCAppBar
new method: -appBarNavigationController:willAddAppBarViewController:asChildOfViewController:
in MDCAppBarNavigationControllerDelegate
new method: -appBarViewControllerForViewController:
in MDCAppBarNavigationController
new property: appBarViewController
in MDCAppBarContainerViewController
new class: MDCAppBarViewController
new class method: +applyTypographyScheme:toAppBarViewController:
in MDCAppBarTypographyThemer
new method: -setHelperText:helperAccessibilityLabel:
in MDCTextInputController
accessibilityLabel
on MDCChipView (#4664) (compositeprimes)This patch release fixes a bug with Flexible Header when VoiceOver is enabled.
AppBar and FlexibleHeader shipped several new features in this release and Snackbar's manager is now implemented as a true singleton. This release also includes additional accessibility improvements and examples, and also fixes some bugs.
The new MDCAppBarNavigationController class is a simpler integration strategy for adding an App Bar to an application. Example:
let navigationController = MDCAppBarNavigationController() // Will automatically inject an AppBar into the view controller if one is not already present. navigationController.pushViewController(viewController, animated: true)
This new API enables all of the new AppBar and FlexibleHeader behaviors, meaning view controllers will better handle being presented in non-full screen settings. If you have already integrated with App Bar, migrating to MDCAppBarNavigationController will allow you to delete a substantial amount of boilerplate from your application. Most notably, MDCAppBarNavigationController enables the new observesTrackingScrollViewScrollEvents
feature on FlexibleHeader, meaning you do not need to forward scroll view events to the navigation controller.
At a minimum you will need to implement the MDCAppBarNavigationController's delegate to theme the injected App Bars. Implement the delegate like so:
navigationController.delegate = self // MARK: MDCAppBarNavigationControllerInjectorDelegate func appBarNavigationController(_ navigationController: MDCAppBarNavigationController, willAdd appBar: MDCAppBar, asChildOf viewController: UIViewController) { let colorScheme: MDCSemanticColorScheme = <# Fetch your color scheme #> let typographyScheme: MDCTypographyScheme = <# Fetch your typography scheme #> MDCAppBarColorThemer.applySemanticColorScheme(colorScheme, to: appBar) MDCAppBarTypographyThemer.applyTypographyScheme(typographyScheme, to: appBar) // Additional configuration of appBar if needed. }
AppBar's new inferTopSafeAreaInsetFromViewController
property enables App Bars to be presented in non-full-screen contexts, such as iPad popovers or extensions. Consider enabling this property by default in all use cases.
FlexibleHeader's new observesTrackingScrollViewScrollEvents
property allows the FlexibleHeader to automatically observe content offset changes to the tracking scroll view, removing the need for forwarding the UIScrollViewDelegate events to the FlexibleHeader. Note: you can only use this new feature if you have not enabled the shift behavior.
MDCSnackbarManager is now implemented as a true singleton with the ability to also create individual instances, making it possible to write self-contained tests for the component.
new class: MDCAppBarNavigationController
new property: delegate
in MDCAppBarNavigationController
new method: -appBarForViewController:
in MDCAppBarNavigationController
new protocol: MDCAppBarNavigationControllerDelegate
new method: -appBarNavigationController:willAddAppBar:asChildOfViewController:
in MDCAppBarNavigationControllerDelegate
new property: inferTopSafeAreaInsetFromViewController
in MDCAppBar
new property: observesTrackingScrollViewScrollEvents
in MDCFlexibleHeaderView
This major release removed the remaining encoding/decoding behaviors from components (tracking project) and fixed a variety of bugs in FlexibleHeader with relation to safe area insets.
AppBar, TextFields, BottomNavigation, and Ink all removed support for encoding/decoding their custom properties.
FlexibleHeader has a new behavior, inferTopSafeAreaInsetFromViewController
, which allows the flexible header to determine its safe area insets from its view controller context, rather than always assuming that the header will consume the entire screen. This new behavior is most useful in extensions and on the iPad when presenting modal dialogs or popovers. To enable the new behavior, you simply set inferTopSafeAreaInsetFromViewController
on MDCFlexibleHeaderViewController
to YES
.
new property: topSafeAreaGuide
in MDCFlexibleHeaderView
new property: inferTopSafeAreaInsetFromViewController
in MDCFlexibleHeaderViewController
modified class: MDCTextInputControllerLegacyFullWidth
Type of change: | Declaration |
---|---|
From: | @interface MDCTextInputControllerLegacyFullWidth : MDCTextInputControllerFullWidth <NSSecureCoding> |
To: | @interface MDCTextInputControllerLegacyFullWidth : MDCTextInputControllerFullWidth |
modified class: MDCTextInputUnderlineView
Type of change: | Declaration |
---|---|
From: | @interface MDCTextInputUnderlineView : UIView <NSCopying, NSSecureCoding> |
To: | @interface MDCTextInputUnderlineView : UIView <NSCopying> |
modified protocol: MDCTextInputController
Type of change: | Declaration |
---|---|
From: | @protocol MDCTextInputController <NSObject, NSSecureCoding, NSCopying, MDCTextInputPositioningDelegate> |
To: | @protocol MDCTextInputController <NSObject, NSCopying, MDCTextInputPositioningDelegate> |
This major release focused on accessibility and removing property coding/encoding from a variety of components. It also fixed a bug related to AppBar/FlexibleHeader top layout guide behavior on pre-iOS 11 devices.
Property encoding/decoding has been removed from a majority of the components, along with any related explicit conformances to NSCoding and NSSecureCoding. See the tracking project to learn more about the status of this work.
MDCNavigationBar's deprecated useFlexibleTopBottomInsets
has been removed.
A variety of accessibility documentation has been added to many of the components.
BottomNavigation has new parameters for the top padding of the nav bar items and the vertical spacing between the icon and title.
new property: itemsContentInsets
in MDCBottomNavigationBar
new property: itemsContentHorizontalMargin
in MDCBottomNavigationBar
new property: itemsContentVerticalMargin
in MDCBottomNavigationBar
removed property: useFlexibleTopBottomInsets
in MDCNavigationBar
In this release we have added the List component, made accessibility improvements to Bottom Sheet, added Shapes support for Chips and Bottom Sheet, made Catalog visual improvements, and other bug fixes.
We have removed property backgroundColor
from MDCTextInputControllerBase
and properties backgroundColor
and backgroundColorDefault
from MDCTextInputController
. The reason for removal was due to these properties not being used by the controller in any meaningful way, and therefore this should not produce any changes.
VoiceOver and switch device users currently have to use the accessibility escape gesture to dismiss a Bottom Sheet. Optionally, the BottomSheet can use the dimmed “scrim” area (which can be tappable) to dismiss the bottom sheet using accessibility technologies.
As an example of how this could be used by clients, here's how our AppDelegate would change to support a VoiceOver button for dismissal:
let menuViewController = MDCMenuViewController(style: .plain) let bottomSheet = MDCBottomSheetController(contentViewController: menuViewController) bottomSheet.dismissOnBackgroundTap = true bottomSheet.isScrimAccessibilityElement = true bottomSheet.scrimAccessibilityLabel = "Close" self.present(bottomSheet, animated: true, completion: nil)
You can now set the car to be interactable or not. Our specification for cards explicitly define a card as being an interactable component. Therefore, the interactable property should be set to NO only if there are other interactable items within the card's content, such as buttons or other tappable controls. To set the interactability to no in your cards:
let card = MDCCard() card.isInteractable = false let cardCell = MDCCardCollectionCell() cardCell.isInteractable = false
We now have a new component, List! See more information about the component here: https://github.com/material-components/material-components-ios/tree/develop/components/List
new category: MDCBottomSheetTransitionController(ScrimAccessibility)
new property: isScrimAccessibilityElement
in MDCBottomSheetTransitionController(ScrimAccessibility)
new property: scrimAccessibilityLabel
in MDCBottomSheetTransitionController(ScrimAccessibility)
new property: scrimAccessibilityHint
in MDCBottomSheetTransitionController(ScrimAccessibility)
new property: scrimAccessibilityTraits
in MDCBottomSheetTransitionController(ScrimAccessibility)
new property: scrimAccessibilityHint
in MDCBottomSheetController
new property: isScrimAccessibilityElement
in MDCBottomSheetController
new property: state
in MDCBottomSheetController
new method: -shapeGeneratorForState:
in MDCBottomSheetController
new property: scrimAccessibilityLabel
in MDCBottomSheetController
new method: -setShapeGenerator:forState:
in MDCBottomSheetController
new property: scrimAccessibilityTraits
in MDCBottomSheetController
new enum: MDCSheetState
with values MDCSheetStateExtended
, MDCSheetStatePreferred
, and MDCSheetStateClosed
new method: -bottomSheetWillChangeState:sheetState:
in MDCBottomSheetPresentationControllerDelegate
new property: scrimAccessibilityLabel
in MDCBottomSheetPresentationController
new property: isScrimAccessibilityElement
in MDCBottomSheetPresentationController
new property: scrimAccessibilityTraits
in MDCBottomSheetPresentationController
new property: scrimAccessibilityHint
in MDCBottomSheetPresentationController
new property: interactable
in MDCCardCollectionCell
new property: interactable
in MDCCard
New component.
new property: backgroundColor
in MDCTextInputControllerFullWidth
new property: backgroundColorDefault
in MDCTextInputControllerFullWidth
removed property: backgroundColor
in MDCTextInputControllerBase
new property: textInputClearButtonTintColorDefault
in MDCTextInputController
new property: textInputClearButtonTintColor
in MDCTextInputController
removed property: backgroundColorDefault
in MDCTextInputController
removed property: backgroundColor
in MDCTextInputController
new method: -mdc_isSimplyEqual:
in UIFont(MaterialSimpleEquality)
new category: UIFont(MaterialSimpleEquality)
backgroundColor
property (#4452) (Robert Moore)BOOL
types (#4436) (Robert Moore)In this release we updated the icon layout of MDCTextField
s add accessibilty docs for MDCButton
and some more MDCBottomNavigation
examples. We also tweeked the MDCChipView
and MDCButtonBar
buttons.
MDCTextField
's with iconsnew protocol: MDCLeadingViewTextInput
new property: leadingView
in MDCLeadingViewTextInput
new property: leadingViewMode
in MDCLeadingViewTextInput
new method: -leadingViewTrailingPaddingConstant
in MDCTextInputPositioningDelegate
new method: -leadingViewRectForBounds:defaultRect:
in MDCTextInputPositioningDelegate
new method: -trailingViewTrailingPaddingConstant
in MDCTextInputPositioningDelegate
new method: -trailingViewRectForBounds:defaultRect:
in MDCTextInputPositioningDelegate
modified class: MDCTextField
Type of change: | Swift declaration |
---|---|
From: | class MDCTextField : MDCTextInput |
To: | class MDCTextField : MDCTextInput, MDCLeadingViewTextInput |
modified class: MDCTextField
Type of change: | Declaration |
---|---|
From: | @interface MDCTextField : UITextField <MDCTextInput> |
To: | @interface MDCTextField : UITextField <MDCTextInput, MDCLeadingViewTextInput> |
new property: inputLayoutStrut
in MDCTextField
This minor release includes better layout guide and safe area insets support to MDCAppBar
's MDCAppBarContainerViewController
, added customization to MDCNavigationBar
title view layout, accessibility improvements and documentation.
MDCNavigationBar
's property useFlexibleTopBottomInsets
has been defaulted to YES
and has now been deprecated. It will eventually be removed and become the default behavior.
AppBar now allows its wrapped content view controllers to make proper use of the top layout guide and additional safe area insets APIs. This is done using the newly added property to AppBar's MDCAppBarContainerViewController
named topLayoutGuideAdjustmentEnabled
. An example on how to implement this behavior:
MDCAppBarContainerViewController *appBarContainerViewController; UITableViewController *tableViewController = [[UITableViewController alloc] initWithStyle:UITableViewStylePlain]; appBarContainerViewController = [[MDCAppBarContainerViewController alloc] initWithContentViewController:tableViewController]; self.appBarContainerViewController.topLayoutGuideAdjustmentEnabled = YES;
NavigationBar now allows configuration of its title view layout behavior to be either “fill” or “center”. The fill behavior is the default and existing behavior, which sets the title view‘s frame to fill the available navigation bar space. The center behavior will always attempt to center the title view within the navigation bar’s bounds. The center behavior is desired by teams in the simple cases of when they want their title view to be centered within the navigation bar as best as possible. This is also the default behavior of UINavigationBar. Example usage:
MDCNavigationBar *navBar = [[MDCNavigationBar alloc] init]; navBar.titleView = [[UIView alloc] init]; navBar.titleViewLayoutBehavior = MDCNavigationBarTitleViewLayoutBehaviorCenter;
new property: topLayoutGuideAdjustmentEnabled
in MDCAppBarContainerViewController
new property: titleViewLayoutBehavior
in MDCNavigationBar
deprecated property: useFlexibleTopBottomInsets
in MDCNavigationBar
Type of change: | Deprecation message |
---|---|
From: | useFlexibleTopBottomInsets |
To: | Implement proper vertical alignment with the default YES behavior. |
new enum MDCNavigationBarTitleViewLayoutBehavior
with values MDCNavigationBarTitleViewLayoutBehaviorFill
and MDCNavigationBarTitleViewLayoutBehaviorCenter
.
This minor release includes added customization to MDCDialogPresentationController
, better topLayoutGuide support for MDCFlexibleHeader
, doc improvements and other small bug fixes.
Flexible header has a new behavioral flag for opting in to better topLayoutGuide support. This is primarily useful when using the flexible header container view controller. To opt in to this new behavior, do the following:
let container = MDCFlexibleHeaderContainerViewController() container.isTopLayoutGuideAdjustmentEnabled = true
Dialogs now offer customizable cornerRadius support to enable proper shadowing. You can set the dialog corner radius like so:
// We set the corner radius to adjust the shadow that is implemented via the trackingView in the // presentation controller. if let presentationController = presentedController.mdc_dialogPresentationController { presentationController.dialogCornerRadius = presentedController.view.layer.cornerRadius }
new property: dialogCornerRadius
in MDCDialogPresentationController
new property: topLayoutGuideAdjustmentEnabled
in MDCFlexibleHeaderContainerViewController
new category: MDCFlexibleHeaderViewController(ToBeDeprecated)
moved method: -updateTopLayoutGuide
from class MDCFlexibleHeaderViewController
to category MDCFlexibleHeaderViewController(ToBeDeprecated)
new property: topLayoutGuideAdjustmentEnabled
in MDCFlexibleHeaderViewController
new property: topLayoutGuideViewController
in MDCFlexibleHeaderViewController
This minor release includes new Snackbar features and minor improvements to the Catalog.
Snackbar now allows you to change the snackbar message alignment on iPad. For example:
MDCSnackbarManager.alignment = MDCSnackbarAlignmentLeading;
Snackbar also exposes a delegate for theming snackbar messages.
MDCSnackbarManager.delegate = appDelegate; - (void)willPresentSnackbarWithMessageView:(nullable MDCSnackbarMessageView *)messageView { // You can theme the individual messageView.actionButtons here. }
There is a new shadow elevation constant, MDCShadowElevationBottomNavigationBar
.
new constant: MDCShadowElevationBottomNavigationBar
new enum value: MDCSnackbarAlignmentCenter
in MDCSnackbarAlignment
new enum value: MDCSnackbarAlignmentLeading
in MDCSnackbarAlignment
new enum: MDCSnackbarAlignment
new property: actionButtons
in MDCSnackbarMessageView
new property: delegate
in MDCSnackbarManager
new property: alignment
in MDCSnackbarManager
new protocol: MDCSnackbarManagerDelegate
new method: -willPresentSnackbarWithMessageView:
in MDCSnackbarManagerDelegate
This minor release introduces some new features to Flexible Header and Snackbar and includes some bug fixes in the Catalog app.
MDCFlexibleHeaderViewController's -updateTopLayoutGuide
will be deprecated in the future. It should no longer be necessary to call this API if you are using an MDCFlexibleHeaderContainerViewController
.
new class method: +hasMessagesShowingOrQueued
in MDCSnackbarManager
This patch release adds metadata to the bidirectionality eng stub doc.
This patch release adds documentation polish around bidirectionality.
This patch release includes more documentation polish and a bug fix for Cards theming.
This patch release polishes and fleshes out documentation across many of our components. There are no source changes in this release.
This major release introduces breaking changes to CocoaPods dependencies. Please read the breaking changes section for more details.
This release also includes a significant amount of documnetation polish and some accessibility bug fixes.
CocoaPods +Extension targets have been removed and replaced with more specific targets for the individual extensions. For example, if you were importing a component's extensions like this before:
pod 'MaterialComponents/Buttons+Extensions'
You‘ll now need to depend on the individual Button extension targets that you’re making use of:
pod 'MaterialComponents/Buttons+ButtonThemer'
To see a full list of available extensions for a given component, read the MaterialComponents.podspec file.
This release focused on documentation across all of our componentry and introduced new outlined themes for components. There have also been significant improvements to theming in the MDCCatalog app.
Buttons, Cards, and Chips now support outlined themes.
// Buttons: [MDCOutlinedButtonThemer applyScheme:buttonScheme toButton:outlinedButton]; // Cards: [MDCCardThemer applyOutlinedVariantWithScheme:cardScheme toCard:component]; // Chips: [MDCChipViewThemer applyOutlinedVariantWithScheme:cardScheme toChipView:component];
Chip hit areas can now be modified using the new hitAreaInsets
API:
chip.hitAreaInsets = UIEdgeInsetsMake(chipVerticalInset, 0, chipVerticalInset, 0);
new property: hitAreaInsets
in MDCChipView
This release introduces umbrella headers for all themer targets. We encourage you to start using the new umbrella headers for all themer APIs.
For example, Swift imports would change like so:
// Before import MaterialComponents.MDCActivityIndicatorColorThemer // After import MaterialComponents.MaterialActivityIndicator_ColorThemer
While Objective-C imports would change like so:
// Before #import "MDCAppBarColorThemer.h" // After #import "MaterialAppBar+ColorThemer.h"
We are focused on polishing the Catalog with the new theming systems and updating our component documentation accordingly. Few new features, if any, will be added over the next few releases.
This release is the final push towards supporting themers on our components.
We will now shift focus to polishing APIs, documentation, and examples and to fixing bugs.
It is now possible to configure colors on BottomNavigation, ButtonBar, NavigationBar, and Tabs statefully.
TextFields now allows customization of the active floating placeholder color.
MDCTabBar now allows the display of a bottom divider using the bottomDividerColor
API.
new property: selectedItemTitleColor
in MDCBottomNavigationBar
new method: -buttonsTitleColorForState:
in MDCButtonBar
new method: -setButtonsTitleColor:forState:
in MDCButtonBar
new method: -imageTintColorForState:
in MDCButton
new method: -setImageTintColor:forState:
in MDCButton
new method: -setButtonsTitleColor:forState:
in MDCNavigationBar
new method: -buttonsTitleColorForState:
in MDCNavigationBar
new typedef: MDCTabBarItemState
new enum value: MDCTabBarItemStateSelected
in MDCTabBarItemState
new enum: MDCTabBarItemState
new enum value: MDCTabBarItemStateNormal
in MDCTabBarItemState
new method: -imageTintColorForState:
in MDCTabBar
new method: -titleColorForState:
in MDCTabBar
new method: -setImageTintColor:forState:
in MDCTabBar
new property: bottomDividerColor
in MDCTabBar
new method: -setTitleColor:forState:
in MDCTabBar
new property: floatingPlaceholderActiveColorDefault
in MDCTextInputControllerFloatingPlaceholder
new property: floatingPlaceholderActiveColor
in MDCTextInputControllerFloatingPlaceholder
This release continues to increase coverage of themers across our components.
ButtonBar now has a Typography themer.
NavigationBar now has APIs for customizing title button fonts.
new method: -setButtonsTitleFont:forState:
in MDCNavigationBar
new method: -buttonsTitleFontForState:
in MDCNavigationBar
This release continues to improve the support for our themer APIs across all components.
Button Bar now allows button typography to be configured.
Floating buttons and contained buttons now have themers.
AppBar and Tabs now have a surface variant color themer API.
Slider now has a color themer.
new method: -setButtonsTitleFont:forState:
in MDCButtonBar
new method: -buttonsTitleFontForState:
in MDCButtonBar
This new release introduces shapes support to buttons and a variety of new themer APIs for many components.
Buttons can now be styled with different shape outlines. Example usage:
MDCRectangleShapeGenerator *raisedShapeGenerator = [[MDCRectangleShapeGenerator alloc] init]; [raisedShapeGenerator setCorners:[[MDCCutCornerTreatment alloc] initWithCut:8.f]]; button.shapeGenerator = raisedShapeGenerator;
There is a new Text Button API for theming an MDCButton to make complete use of typography, color, and other configurable properties of a button's design. A button themed as a text button is closely equivalent to the MDCFlatButton
class, MDCFlatButton
will soon be deprecated as a result in favor of the following pattern:
// Define your button's scheme somewhere centrally in your app. let buttonScheme = MDCButtonScheme() buttonScheme.colorScheme = myAppColorScheme // Apply the button scheme to an MDCButton to give it the appearance of a text button. // button: MDCButton MDCTextButtonThemer.applyScheme(buttonScheme, to: button)
NavigationBar and FlexibleHeader now both have a surface variant themer.
Chips and Tabs have updated color themers.
new property: shapeGenerator
in MDCButton
This release introduces a new API for compositing colors for use by color themers.
new method: MDCSemanticColorScheme
+blendColor:withBackgroundColor:
This is a hotfix release fixing a bug in ButtonBar that was introduced in 54.6.0.
This release introduces new APIs and themers for customizing typography and color. This release also fixes a bug in NavigationBar affecting title label kerning for system fonts. This may result in visual changes for navigation bar instances.
AppBar now has a Typography themer.
Buttons now has a raised button color themer.
BottomSheets background tap-to-dismiss behavior can now be disabled with dismissOnBackgroundTap
.
ButtonBar and NavigationBar's ink color can now be customized.
Cars now has a Color themer.
NavigationBar has a new opt-in behavioral change gated by the useFlexibleTopBottomInsets
property. Enabling this property will result in new layout behavior for the navigation bar's titleView. This flag will be enabled by default in the future. Consider enabling this flag on your navigation bar instances in order to verify that the new behavior will not cause regressions in your app.
TextFields now expose a backgroundColor property.
new property: dismissOnBackgroundTap
in MDCBottomSheetPresentationController
new property: dismissOnBackgroundTap
in MDCBottomSheetTransitionController
new property: dismissOnBackgroundTap
in MDCBottomSheetController
new property: inkColor
in MDCButtonBar
new property: inkColor
in MDCNavigationBar
new property: useFlexibleTopBottomInsets
in MDCNavigationBar
new property: backgroundColor
in MDCTextInputControllerBase
new property: backgroundColorDefault
in MDCTextInputController
new property: backgroundColor
in MDCTextInputController
This release includes bug fixes and increased coverage of our themer APIs for components.
Slider now exposes a variety of properties for customizing color, including new stateful color APIs. To make use of the new stateful APIs, you must enable statefulAPIEnabled
on the MDCSlider instance.
BottomNavigationBar and Dialogs now both have a semantic color themer.
new method: -setBackgroundTrackTickColor:forState:
in MDCSlider
new property: valueLabelTextColor
in MDCSlider
new method: -trackFillColorForState:
in MDCSlider
new method: -backgroundTrackTickColorForState:
in MDCSlider
new method: -setThumbColor:forState:
in MDCSlider
new method: -trackBackgroundColorForState:
in MDCSlider
new method: -setFilledTrackTickColor:forState:
in MDCSlider
new method: -filledTrackTickColorForState:
in MDCSlider
new method: -thumbColorForState:
in MDCSlider
new method: -setTrackBackgroundColor:forState:
in MDCSlider
new property: inkColor
in MDCSlider
new property: statefulAPIEnabled
in MDCSlider
new property: valueLabelBackgroundColor
in MDCSlider
new method: -setTrackFillColor:forState:
in MDCSlider
Buttons now has a Typography themer.
MDCFlatButton now has a color themer API.
This release continues to expand our support for component Color and Typography theming.
Buttons and Snackbar now have a Color themer.
BottomNavigationBar, Chips, NavigationBar, TextFields each now have a Typography themer.
Dialogs, FeatureHighlight, and TabBar now each have a Typography themer.
ActivityIndicator and AppBar now have an updated Color themer.
new property: titleFont
in MDCFeatureHighlightViewController
new property: bodyFont
in MDCFeatureHighlightViewController
new property: textInputFont
in MDCTextInputController
new property: textInputFontDefault
in MDCTextInputController
Snackbar now has a Typography themer.
NavigationBar now exposes a Color themer API that makes use of the MDCColorScheming
type.
Added missing CocoaPods dependencies from v54.0.0.
MDCMaskedTransition
has been removed and replaced with MDCMaskedTransitionController
. You may now use MDCMaskedTransitionController
as a standard UIKit transitioning delegate.
Many components now expose new public APIs for configuring typography, color, and shapes.
new property: shapeGenerator
in MDCCardCollectionCell
new property: shapeGenerator
in MDCCard
new property: titleColor
in MDCAlertController
new property: titleFont
in MDCAlertController
new property: messageFont
in MDCAlertController
new property: buttonTitleColor
in MDCAlertController
new property: buttonFont
in MDCAlertController
new property: messageColor
in MDCAlertController
removed class: MDCMaskedTransition
removed method: -init
in MDCMaskedTransition
removed method: -initWithSourceView:
in MDCMaskedTransition
removed property: calculateFrameOfPresentedView
in MDCMaskedTransition
new property: sourceView
in MDCMaskedTransitionController
new method: -initWithSourceView:
in MDCMaskedTransitionController
new method: -init
in MDCMaskedTransitionController
new property: calculateFrameOfPresentedView
in MDCMaskedTransitionController
new class: MDCMaskedTransitionController
new property: titleFont
in MDCNavigationBar
new property: titleTextColor
in MDCNavigationBar
new class method: +buttonTitleColorForState:
in MDCSnackbarManager
new property: mdc_adjustsFontForContentSizeCategory
in MDCSnackbarManager
new property: snackbarMessageViewBackgroundColor
in MDCSnackbarManager
new property: shouldApplyStyleChangesToVisibleSnackbars
in MDCSnackbarManager
new property: buttonFont
in MDCSnackbarManager
new class method: +setButtonTitleColor:forState:
in MDCSnackbarManager
new property: snackbarMessageViewShadowColor
in MDCSnackbarManager
new property: messageTextColor
in MDCSnackbarManager
new property: messageFont
in MDCSnackbarManager
modified class method: +setPresentationHostView:
in MDCSnackbarManager
Type of change: | Declaration |
---|---|
From: | + (void)setPresentationHostView:(UIView *)hostView; |
To: | + (void)setPresentationHostView:(nullable UIView *)hostView; |
modified class method: +dismissAndCallCompletionBlocksWithCategory:
in MDCSnackbarManager
Type of change: | Declaration |
---|---|
From: | + (void)dismissAndCallCompletionBlocksWithCategory:(NSString *)category; |
To: | + (void)dismissAndCallCompletionBlocksWithCategory: (nullable NSString *)category; |
modified class method: +suspendMessagesWithCategory:
in MDCSnackbarManager
Type of change: | Swift declaration |
---|---|
From: | class func suspendMessages(withCategory category: Any!) -> MDCSnackbarSuspensionToken! |
To: | class func suspendMessages(withCategory category: Any!) -> MDCSnackbarSuspensionToken? |
modified class method: +suspendMessagesWithCategory:
in MDCSnackbarManager
Type of change: | Declaration |
---|---|
From: | + (id<MDCSnackbarSuspensionToken>)suspendMessagesWithCategory: (NSString *)category; |
To: | + (nullable id<MDCSnackbarSuspensionToken>)suspendMessagesWithCategory: (nullable NSString *)category; |
modified class method: +showMessage:
in MDCSnackbarManager
Type of change: | Swift declaration |
---|---|
From: | class func show(_ message: MDCSnackbarMessage!) |
To: | class func show(_ message: MDCSnackbarMessage?) |
modified class method: +showMessage:
in MDCSnackbarManager
Type of change: | Declaration |
---|---|
From: | + (void)showMessage:(MDCSnackbarMessage *)message; |
To: | + (void)showMessage:(nullable MDCSnackbarMessage *)message; |
modified class method: +suspendAllMessages
in MDCSnackbarManager
Type of change: | Swift declaration |
---|---|
From: | class func suspendAllMessages() -> MDCSnackbarSuspensionToken! |
To: | class func suspendAllMessages() -> MDCSnackbarSuspensionToken? |
modified class method: +suspendAllMessages
in MDCSnackbarManager
Type of change: | Declaration |
---|---|
From: | + (id<MDCSnackbarSuspensionToken>)suspendAllMessages; |
To: | + (nullable id<MDCSnackbarSuspensionToken>)suspendAllMessages; |
modified class method: +resumeMessagesWithToken:
in MDCSnackbarManager
Type of change: | Swift declaration |
---|---|
From: | class func resumeMessages(with token: MDCSnackbarSuspensionToken!) |
To: | class func resumeMessages(with token: MDCSnackbarSuspensionToken?) |
modified class method: +resumeMessagesWithToken:
in MDCSnackbarManager
Type of change: | Declaration |
---|---|
From: | + (void)resumeMessagesWithToken:(id<MDCSnackbarSuspensionToken>)token; |
To: | + (void)resumeMessagesWithToken:(nullable id<MDCSnackbarSuspensionToken>)token; |
Moved to schemes/Typography.
Moved to schemes/Color.
Moved to schemes/Color.
Moved to schemes/Color.
Moved to schemes/Color.
Moved to schemes/Typography.
New component.
primaryColor
and applies it to the selectedItemTintColor
. It will no longer apply values to either unselectedItemTintColor
or barTintColor
.modified class: MDCTextInputControllerLegacyDefault
Type of change: | Swift declaration |
---|---|
From: | class MDCTextInputControllerLegacyDefault : NSObject, MDCTextInputControllerFloatingPlaceholder |
To: | class MDCTextInputControllerLegacyDefault : MDCTextInputControllerBase |
modified class: MDCTextInputControllerLegacyDefault
Type of change: | Declaration |
---|---|
From: | @interface MDCTextInputControllerLegacyDefault : NSObject <MDCTextInputControllerFloatingPlaceholder> |
To: | @interface MDCTextInputControllerLegacyDefault : MDCTextInputControllerBase |
modified class: MDCTextInputControllerLegacyFullWidth
Type of change: | Swift declaration |
---|---|
From: | class MDCTextInputControllerLegacyFullWidth : NSObject, MDCTextInputController |
To: | class MDCTextInputControllerLegacyFullWidth : MDCTextInputControllerFullWidth, NSSecureCoding |
modified class: MDCTextInputControllerLegacyFullWidth
Type of change: | Declaration |
---|---|
From: | @interface MDCTextInputControllerLegacyFullWidth : NSObject <MDCTextInputController> |
To: | @interface MDCTextInputControllerLegacyFullWidth : MDCTextInputControllerFullWidth <NSSecureCoding> |
removed property: textInputFont
in MDCTextInputController
removed property: textInputFontDefault
in MDCTextInputController
New component.
MDCTabBarFontThemer and MDCBottomAppBarColorThemer changed a argument to nonnull from nullable.
new property: backgroundColor
in MDCBottomNavigationBar
new property: barTintColor
in MDCBottomNavigationBar
new property: minimumSize
in MDCChipView
new property: cardBorderRadius
in MDCCollectionViewStyling
new property: textInputFont
in MDCTextInputController
new property: textInputFontDefault
in MDCTextInputController
barTintColor
to replace backgroundColor
(#3085) (Robert Moore)NS_UNAVAILABLE property: backgroundColor
in MDCBottomAppBarView
new property: barTintColor
in MDCBottomAppBarView
NS_UNAVAILABLE property: backgroundColor
in MDCBottomAppBarView
new property: shadowColor
in MDCBottomAppBarView
new property: backgroundColor
in MDCBottomAppBarView
new property: titleColor
in MDCAlertControllerView
new property: mdc_adjustsFontForContentSizeCategory
in MDCAlertControllerView
new class: MDCAlertControllerView
new property: titleFont
in MDCAlertControllerView
new property: buttonColor
in MDCAlertControllerView
new property: buttonFont
in MDCAlertControllerView
new property: messageColor
in MDCAlertControllerView
new property: messageFont
in MDCAlertControllerView
removed property: highlightedButtonTextColor
in MDCSnackbarMessage
deprecated property: buttonTextColor
in MDCSnackbarMessage
modified property: snackbarMessageViewTextColor
in MDCSnackbarMessageView()
Type of change: | Deprecation message |
---|---|
From: | snackbarMessageViewTextColor |
To: | messsageTextColor |
modified property: snackbarMessageViewTextColor
in MDCSnackbarMessageView()
Type of change: | Deprecation |
---|---|
From: | 0 |
To: | 1 |
modified property: snackbarMessageViewTextColor
in MDCSnackbarMessageView()
Type of change: | parent.usr |
---|---|
From: | c:objc(cs)MDCSnackbarMessageView |
To: | c:objc(ext)MDCSnackbarMessageView@MDCSnackbarMessageView.h@2959 |
new property: messageTextColor
in MDCSnackbarMessageView
new method: -buttonTitleColorForState:
in MDCSnackbarMessageView
new property: mdc_adjustsFontForContentSizeCategory
in MDCSnackbarMessageView
new method: -setButtonTitleColor:forState:
in MDCSnackbarMessageView
new property: usesLegacySnackbar
in MDCSnackbarMessage
removed property: highlightedButtonTextColor
in MDCSnackbarMessage
removed property: buttonTextColor
in MDCSnackbarMessage
new method: -snackbarMessageViewTextColor
in snackbarMessageViewTextColor
in MDCSnackbarMessageView()
new category: MDCSnackbarMessageView()
new method: -setSnackbarMessageViewTextColor:
in snackbarMessageViewTextColor
in MDCSnackbarMessageView()
modified property: snackbarMessageViewTextColor
in MDCSnackbarMessageView()
Type of change: | Deprecation message |
---|---|
From: | `` |
To: | Use messsageTextColor instead. |
modified property: snackbarMessageViewTextColor
in MDCSnackbarMessageView()
Type of change: | Deprecation |
---|---|
From: | 0 |
To: | 1 |
modified property: snackbarMessageViewTextColor
in MDCSnackbarMessageView()
Type of change: | parent.usr |
---|---|
From: | c:objc(cs)MDCSnackbarMessageView |
To: | c:objc(ext)MDCSnackbarMessageView@MDCSnackbarMessageView.h@2959 |
removed property: selectedImageTintColor
in MDCCardCollectionCell
removed property: selectedImage
in MDCCardCollectionCell
new method: -setVerticalImageAlignment:forState:
in MDCCardCollectionCell
new method: -setImageTintColor:forState:
in MDCCardCollectionCell
new method: -horizontalImageAlignmentForState:
in MDCCardCollectionCell
new method: -imageForState:
in MDCCardCollectionCell
new method: -imageTintColorForState:
in MDCCardCollectionCell
new method: -setImage:forState:
in MDCCardCollectionCell
new method: -verticalImageAlignmentForState:
in MDCCardCollectionCell
new method: -setHorizontalImageAlignment:forState:
in MDCCardCollectionCell
removed property: selectedImageTintColor
in MDCCardCollectionCell
removed property: selectedImage
in MDCCardCollectionCell
modified class: MDCCardCollectionCell
new enum value: MDCCardCellVerticalImageAlignmentBottom
in MDCCardCellVerticalImageAlignment
new typedef: MDCCardCellVerticalImageAlignment
new enum: MDCCardCellVerticalImageAlignment
new enum value: MDCCardCellVerticalImageAlignmentCenter
in MDCCardCellVerticalImageAlignment
new enum value: MDCCardCellVerticalImageAlignmentTop
in MDCCardCellVerticalImageAlignment
new enum value: MDCCardCellHorizontalImageAlignmentRight
in MDCCardCellHorizontalImageAlignment
new enum value: MDCCardCellHorizontalImageAlignmentCenter
in MDCCardCellHorizontalImageAlignment
new typedef: MDCCardCellHorizontalImageAlignment
new enum: MDCCardCellHorizontalImageAlignment
new enum value: MDCCardCellHorizontalImageAlignmentLeft
in MDCCardCellHorizontalImageAlignment
new method: -setProgress:animated:
in MDCActivityIndicator
modified class: MDCTonalPalette
Type of change: | Swift declaration |
---|---|
From: | class MDCTonalPalette : NSObject, NSCoding, NSCopying |
To: | class MDCTonalPalette : NSObject, NSCopying, NSSecureCoding |
modified class: MDCTonalPalette
Type of change: | Declaration |
---|---|
From: | @interface MDCTonalPalette : NSObject <NSCoding, NSCopying> |
To: | @interface MDCTonalPalette : NSObject <NSCopying, NSSecureCoding> |
Remove Material Motion from the BottomSheets component as it was causing crashes on iOS 8.
removed property: dismissOnBackgroundTap
in MDCDialogTransition
removed class: MDCDialogTransition
modified class: MDCTextInputUnderlineView
Type of change: | Swift declaration |
---|---|
From: | class MDCTextInputUnderlineView : UIView, NSCopying, NSCoding |
To: | class MDCTextInputUnderlineView : UIView, NSCopying, NSSecureCoding |
modified class: MDCTextInputUnderlineView
Type of change: | Declaration |
---|---|
From: | @interface MDCTextInputUnderlineView : UIView <NSCopying, NSCoding> |
To: | @interface MDCTextInputUnderlineView : UIView <NSCopying, NSSecureCoding> |
modified protocol: MDCTextInputController
Type of change: | Swift declaration |
---|---|
From: | protocol MDCTextInputController : NSObjectProtocol, NSCoding, NSCopying, MDCTextInputPositioningDelegate |
To: | protocol MDCTextInputController : NSObjectProtocol, NSSecureCoding, NSCopying, MDCTextInputPositioningDelegate |
modified protocol: MDCTextInputController
Type of change: | Declaration |
---|---|
From: | @protocol MDCTextInputController <NSObject, NSCoding, NSCopying, MDCTextInputPositioningDelegate> |
To: | @protocol MDCTextInputController <NSObject, NSSecureCoding, NSCopying, MDCTextInputPositioningDelegate> |
Added extra guard to prevent crash cause by adding nil to a NSCache.
New component.
new method: -startTouchBeganAtPoint:animated:withCompletion:
in MDCInkView
new method: -startTouchEndAtPoint:animated:withCompletion:
in MDCInkView
new class: MDCButtonBarButton
new method: -inkColorForState:
in MDCChipView
new method: -setInkColor:forState:
in MDCChipView
modified class: MDCChipView
modified property: inkColor
in MDCChipView
modified property: inkColor
in MDCChipView
new property: buttonFont
in MDCSnackbarMessageView
new property: messageFont
in MDCSnackbarMessageView
new property: button
in MDCFontScheme
new property: body2
in MDCFontScheme
new property: headline5
in MDCFontScheme
new property: caption
in MDCFontScheme
new property: subtitle2
in MDCFontScheme
new property: subtitle1
in MDCFontScheme
new property: body1
in MDCFontScheme
new property: headline1
in MDCFontScheme
new property: overline
in MDCFontScheme
new property: headline2
in MDCFontScheme
new property: headline4
in MDCFontScheme
new protocol: MDCFontScheme
new property: headline3
in MDCFontScheme
new property: headline6
in MDCFontScheme
new property: button
in MDCBasicFontScheme
new property: headline1
in MDCBasicFontScheme
new property: headline5
in MDCBasicFontScheme
new property: body1
in MDCBasicFontScheme
new property: subtitle2
in MDCBasicFontScheme
new property: headline2
in MDCBasicFontScheme
new property: body2
in MDCBasicFontScheme
new property: overline
in MDCBasicFontScheme
new property: headline6
in MDCBasicFontScheme
new property: subtitle1
in MDCBasicFontScheme
new class: MDCBasicFontScheme
new property: headline4
in MDCBasicFontScheme
new property: headline3
in MDCBasicFontScheme
new property: caption
in MDCBasicFontScheme
new property: titleFont
in MDCChipView
MDCSlider
supports more UIAppearance customization.MDCActivityIndicator
provides improved support for animation transitions.new property: duration
in MDCActivityIndicatorTransition
new method: -initWithAnimation:
in MDCActivityIndicatorTransition
new class: MDCActivityIndicatorTransition
new property: animation
in MDCActivityIndicatorTransition
new method: -init
in MDCActivityIndicatorTransition
new method: -initWithCoder:
in MDCActivityIndicatorTransition
new property: completion
in MDCActivityIndicatorTransition
new typedef: MDCActivityIndicatorAnimation
new method: -startAnimatingWithTransition:cycleStartIndex:
in MDCActivityIndicator
new method: -stopAnimatingWithTransition:
in MDCActivityIndicator
new property: thumbRadius
in MDCSlider
new property: thumbElevation
in MDCSlider
modified property: trackBackgroundColor
in MDCSlider
Type of change: | Declaration |
---|---|
From: | @property(nonatomic, strong, null_resettable) UIColor *trackBackgroundColor |
To: | @property (readwrite, strong, nonatomic, null_resettable) UIColor *trackBackgroundColor; |
caption
(#2799) (Robert Moore)Podspec now separates out extensions (themers, accessibility additions, etc.) into their own podspec.
If you wish to add a component and all of its extensions, update your Podfile and add “+Extensions” to the component.
To include Activity Indicator and its extensions you would write:
pod 'MaterialComponents/ActivityIndicator+Extensions'
Add NSCoding tests (#2740) (Robert Moore)
Added isPresentable to catalog files, ported over ZShadow to dragons. (#2726) (Yarden Eitan)
Correct itemTitleFont behavior (#2736) (Robert Moore)
new method: -setTitleFont:forState:
in MDCButton
new method: -titleFontForState:
in MDCButton
new property: bodyFont
in MDCFeatureHighlightView
new property: titleFont
in MDCFeatureHighlightView
This major release includes a variety of API name changes. Please see the API changes below for more details.
MDCTextInputControllerDefault
has been removed. Use MDCTextInputControllerUnderline
instead.
modified class: MDCTextInputControllerOutlined
Type of change: | Swift declaration |
---|---|
From: | class MDCTextInputControllerOutlined : MDCTextInputControllerDefault |
To: | class MDCTextInputControllerOutlined : MDCTextInputControllerBase |
modified class: MDCTextInputControllerOutlined
Type of change: | Declaration |
---|---|
From: | @interface MDCTextInputControllerOutlined : MDCTextInputControllerDefault |
To: | @interface MDCTextInputControllerOutlined : MDCTextInputControllerBase |
modified class: MDCTextInputControllerOutlinedTextArea
Type of change: | Swift declaration |
---|---|
From: | class MDCTextInputControllerOutlinedTextArea : MDCTextInputControllerDefault |
To: | class MDCTextInputControllerOutlinedTextArea : MDCTextInputControllerBase |
modified class: MDCTextInputControllerOutlinedTextArea
Type of change: | Declaration |
---|---|
From: | @interface MDCTextInputControllerOutlinedTextArea : MDCTextInputControllerDefault |
To: | @interface MDCTextInputControllerOutlinedTextArea : MDCTextInputControllerBase |
new property: expandsOnOverflow
in MDCTextInputControllerBase
new property: borderFillColorDefault
in MDCTextInputControllerBase
new property: borderFillColor
in MDCTextInputControllerBase
new property: minimumLines
in MDCTextInputControllerBase
new class: MDCTextInputControllerBase
removed property: expandsOnOverflow
in MDCTextInputControllerDefault
removed property: borderFillColor
in MDCTextInputControllerDefault
removed class: MDCTextInputControllerDefault
removed property: borderFillColorDefault
in MDCTextInputControllerDefault
removed property: minimumLines
in MDCTextInputControllerDefault
removed constant: MDCTextInputDefaultUnderlineActiveHeight
modified class: MDCTextInputControllerFilled
Type of change: | Swift declaration |
---|---|
From: | class MDCTextInputControllerFilled : MDCTextInputControllerDefault |
To: | class MDCTextInputControllerFilled : MDCTextInputControllerBase |
modified class: MDCTextInputControllerFilled
Type of change: | Declaration |
---|---|
From: | @interface MDCTextInputControllerFilled : MDCTextInputControllerDefault |
To: | @interface MDCTextInputControllerFilled : MDCTextInputControllerBase |
removed constant: MDCTextInputDefaultBorderRadius
new class: MDCTextInputControllerUnderline
new constant: MDCTextInputControllerBaseDefaultBorderRadius
new property: underlineHeightActiveDefault
in MDCTextInputController
new property: underlineHeightActive
in MDCTextInputController
new property: underlineHeightNormalDefault
in MDCTextInputController
new property: underlineHeightNormal
in MDCTextInputController
new method: -mdc_fontSizedForMaterialTextStyle:scaledForDynamicType:
in UIFont(MaterialTypography)
New MDCChipField API in the Chips component provides an interface through which a user can input a collection of string tokens.
new constant: MDCChipFieldDefaultContentEdgeInsets
new enum value: MDCChipFieldDelimiterReturn
in MDCChipFieldDelimiter
new enum: MDCChipFieldDelimiter
new enum value: MDCChipFieldDelimiterAll
in MDCChipFieldDelimiter
new enum value: MDCChipFieldDelimiterNone
in MDCChipFieldDelimiter
new typedef: MDCChipFieldDelimiter
new enum value: MDCChipFieldDelimiterDefault
in MDCChipFieldDelimiter
new enum value: MDCChipFieldDelimiterSpace
in MDCChipFieldDelimiter
new enum value: MDCChipFieldDelimiterDidEndEditing
in MDCChipFieldDelimiter
new class: MDCChipField
new method: -focusTextFieldForAccessibility
in MDCChipField
new method: -removeSelectedChips
in MDCChipField
new method: -removeChip:
in MDCChipField
new property: contentEdgeInsets
in MDCChipField
new method: -addChip:
in MDCChipField
new property: showPlaceholderWithChips
in MDCChipField
new property: textField
in MDCChipField
new property: minTextFieldWidth
in MDCChipField
new property: chipHeight
in MDCChipField
new method: -deselectAllChips
in MDCChipField
new property: delegate
in MDCChipField
new method: -selectChip:
in MDCChipField
new property: chips
in MDCChipField
new method: -clearTextInput
in MDCChipField
new property: delimiter
in MDCChipField
new method: -chipField:didChangeInput:
in MDCChipFieldDelegate
new protocol: MDCChipFieldDelegate
new method: -chipFieldHeightDidChange:
in MDCChipFieldDelegate
new method: -chipFieldDidBeginEditing:
in MDCChipFieldDelegate
new method: -chipField:didRemoveChip:
in MDCChipFieldDelegate
new method: -chipField:didTapChip:
in MDCChipFieldDelegate
new method: -chipField:shouldAddChip:
in MDCChipFieldDelegate
new method: -chipFieldShouldBecomeFirstResponder:
in MDCChipFieldDelegate
new method: -chipField:didAddChip:
in MDCChipFieldDelegate
new method: -chipFieldShouldReturn:
in MDCChipFieldDelegate
new method: -chipFieldDidEndEditing:
in MDCChipFieldDelegate
new property: shapeGenerator
in MDCChipView
new method: -shadowColorForState:
in MDCChipView
new method: -setShadowColor:forState:
in MDCChipView
new constant: MDCChipFieldDefaultMinTextFieldWidth
new property: mdc_adjustsFontForContentSizeCategory
in MDCFeatureHighlightView
new category: MDCShadowLayer(Subclassing)
new class method: +mdc_standardFontDescriptorForMaterialTextStyle:
in UIFontDescriptor(MaterialTypography)
new class method: +mdc_standardFontForMaterialTextStyle:
in UIFont(MaterialTypography)
MDCFloatingButton updateShapeForcingLayout
(#2625) (Robert Moore)MDCFloatingButtonShapeLargeIcon
has been removed.
// Old code MDCFloatingButton *button = [MDCFloatingButton floatingButtonWithShape:MDCFloatingButtonShapeLargeIcon]; // New code MDCFloatingButton *button = [[MDCFloatingButton alloc] init];
BottomSheet has a variety of new deprecations.
MDCFloatingButton has a new mode property and can now be expanded.
MDCInkView has a new delegate-based API for responding to animation events.
It's now possible to customize fonts on Tabs.
new method: -activityIndicatorModeTransitionDidFinish:
in MDCActivityIndicatorDelegate
deprecated property: mdc_bottomSheetPresentationController
in UIViewController(MaterialBottomSheet)
. Assign an instance of MDCBottomSheetTransition to your view controller's mdm_transitionController.transition instead.
deprecated class: MDCBottomSheetTransitionController
. Assign an instance of MDCBottomSheetTransition to your view controller's mdm_transitionController.transition instead.
deprecated protocol: MDCBottomSheetPresentationControllerDelegate
. This API will soon be made private. Use MDCBottomSheetController instead.
deprecated class: MDCBottomSheetPresentationController
. This API will soon be made private. Use MDCBottomSheetController instead.
new method: -setMaximumSize:
in MDCFloatingButton
new property: imageTitleSpace
in MDCFloatingButton
new method: -setContentEdgeInsets:
in MDCFloatingButton
new method: -setMinimumSize:
in MDCFloatingButton
new property: imageLocation
in MDCFloatingButton
new method: -setMinimumSize:forShape:inMode:
in MDCFloatingButton
new property: mode
in MDCFloatingButton
new method: -setHitAreaInsets:forShape:inMode:
in MDCFloatingButton
new method: -setContentEdgeInsets:forShape:inMode:
in MDCFloatingButton
new method: -setHitAreaInsets:
in MDCFloatingButton
new method: -setMaximumSize:forShape:inMode:
in MDCFloatingButton
new enum value: MDCFloatingButtonModeExpanded
in MDCFloatingButtonMode
new enum value: MDCFloatingButtonModeNormal
in MDCFloatingButtonMode
new enum: MDCFloatingButtonMode
removed enum value: MDCFloatingButtonShapeLargeIcon
in MDCFloatingButtonShape
new enum value: MDCFloatingButtonImageLocationLeading
in MDCFloatingButtonImageLocation
new typedef: MDCFloatingButtonImageLocation
new enum: MDCFloatingButtonImageLocation
new enum value: MDCFloatingButtonImageLocationTrailing
in MDCFloatingButtonImageLocation
new property: animationDelegate
in MDCInkView
new method: -inkAnimationDidStart:
in MDCInkViewDelegate
new method: -inkAnimationDidEnd:
in MDCInkViewDelegate
new protocol: MDCInkViewDelegate
new property: selectedItemTitleFont
in MDCTabBar
new property: titleTextTransform
in MDCTabBar
new property: unselectedItemTitleFont
in MDCTabBar
new enum: MDCTabBarTextTransform
new enum value: MDCTabBarTextTransformAutomatic
in MDCTabBarTextTransform
new typedef: MDCTabBarTextTransform
new enum value: MDCTabBarTextTransformUppercase
in MDCTabBarTextTransform
new enum value: MDCTabBarTextTransformNone
in MDCTabBarTextTransform
imageTitleSpace
(#2565) (Robert Moore)new class: MDCDialogTransition
.
breaking changed property signature: MDCInkView
's inkColor
from null_resettable
to nonnull
.
new property: usesLegacyInkRipple
.
breaking MDCSnackbarMessage
's public APIs have all been annotated with nullability annotations.
new class: MDCIntrinsicHeightTextView
.
changed property signature: MDCMultilineTextField
's textView changed from UITextView
to MDCIntrinsicHeightTextView
.
MDCAnimationTimingFunctionStandard
, MDCAnimationTimingFunctionDeceleration
, and MDCAnimationTimingFunctionAcceleration
.MDCBottomSheetTransition
.New property: -selectionIndicatorTemplate
.
New class: MDCTabBarIndicatorAttributes
.
New protocol: MDCTabBarIndicatorContext
.
New Protocol: MDCTabBarIndicatorTemplate
.
New class: MDCTabBarUnderlineIndicatorTemplate
.
MDCColorScheme
now conforms to NSObject
.trackingScrollView
property to support better dragging.[MDCTabBar defaultHeightForBarPosition:itemAppearance:]
.MDCAnimationTimingFunctionSharp
timing function from the spec.MDCBottomNavigationBarDelegate
with controls on selecting items.minimumSize
and maximumSize
properties.injectedInkViewForView
convenience function to find an ink view in a view hierarchy.disabledColor
property.MDCMultilineTextField
expandsOnOverflow
and placeholder
text properties.MDCTextInput
expandsOnOverflow
property is no longer IBInspectable.No code changes. Added a missing dependency to the BottomNavigation component found after the 38.1.0 release was published.
MDCTextInput.cursorColor
controls the color of the blinking cursor (in the text).None for this release.
titleTextAttributes
uses a dictionary with keys of type NSAttributedStringKey
instead of NSString *
so, for example, .font
should be used intead of NSAttributedStringKey.font.rawValue
.[MDCTextFieldPositioningDelegate textInputDidUpdateConstraints]
, called after the input's updateConstraints
.MDCTextInputControllerDefault
's floatingPlaceholderDestination
property is replaced with floatingPlaceholderOffset
and is a UIOffset
, not CGPoint
.minMaxHeightIncludesSafeArea
to inform the component if the minimumHeight
and maximumHeight
properties include the safe area inset.-[MDCTabBarControllerDelegate tabBarController:shouldSelectViewController:]
and -[MDCTabBarControllerDelegate tabBarController:didSelectViewController:]
will be called for the currently-selected tab if the user taps the tab again (that is, the tab doesn‘t change). This matches Apple’s behavior more closely and allows for custom behaviors.MDCMultilineTextField
now has a MDCMultilineTextInputDelegate
for useful methods not included in UITextViewDelegate.placeholderText
property to control the placeholder text.MDCShadowElevation
type insetad of raw CGFloats.MDCShadowElevation
typedef for shadow elevation values instead of raw CGFloats.MDCTextInputController
:inlinePlaceholderFont
, inlinePlaceholderFontDefault
, leadingUnderlineLabelFont,
leadingUnderlineLabelFontDefault`.MDCTextInputControllerFilled
, MDCTextInputControllerOutlined
, MDCTextInputControllerOutlinedTextArea
.MDCTextField.clearButtonMode
now supports UIAppearance.new
with alloc init
to match the style guide. (#2033) (Adrian Secord)[MDCPageControl sizeForNumberOfPages:]
method changed from instance method to class method (Cody Weaver)[MDCTextInputControllerDefault floatingPlaceholderColor]
renamed to floatingPlaceholderNormalColor
, similarly floatingPlaceholderColorDefault
and the same for MDCTextInputControllerLegacyDefault
.None.
Hotfix: Fixes Feature Highlight configuration.
*Legacy*
classes.Renaming changes in preparation for a new text field style coming soon. No functional or visual changes to the text fields.
MDCTextInputControllerDefault
was renamed to MDCTextInputControllerLegacyDefault
.MDCTextInputControllerFullWidth
was renamed to MDCTextInputControllerLegacyFullWidth
.MDCTextInputController
properties activeColor
, disabledColor
, normalColor
, and associated default colors.MDCTextInputController
properties underlineColorActive
, underlineColorNormal
, and associated default colors.MDCTextInputUnderlineView
properties disabledUnderline
and underline
in favor of color
and disabledColor
.scripts/generate_jazzy_yamls.sh
for new components. (#1766) (Adrian Secord)scripts/generate_jazzy_yamls.sh
for new components. (#1766) (Adrian Secord)scripts/generate_jazzy_yamls.sh
for new components. (#1766) (Adrian Secord)Hotfix release: fixes autolayout bug involving TextFields height.
No changes to code or docs, only updating metadata for generating https://material.io/components/ios/.
MDCMultilineTextField
, a Material Design-themed mutiline text field (multiline text input).[MDCTextFieldPositioningDelegate sizeThatFits:defaultSize:]
has been removed, see [MDCTextFieldPositioningDelegate textInsets:]
instead.MDCMultilineTextInput.minimumLines
and .expandsOnOverflow
properties.typeof
and the ?:
operator (#1601) (Robert Moore)typeof
and the ?:
operator (#1601) (Robert Moore)typeof
and the ?:
operator (#1601) (Robert Moore)typeof
and the ?:
operator (#1601) (Robert Moore)typeof
and the ?:
operator (#1601) (Robert Moore)typeof
and the ?:
operator (#1601) (Robert Moore)typeof
and the ?:
operator (#1601) (Robert Moore)typeof
and the ?:
operator (#1601) (Robert Moore)typeof
and the ?:
operator (#1601) (Robert Moore)typeof
and the ?:
operator (#1601) (Robert Moore)Hotfix: Cherry picked: [Buttons] Call designated initializer in init methods
Hotfix: Added implementation for accessibilityElementForItem: for MDCTabBar
Hotfix: Fixed missing bump of version numbers.
Hotfix: Added missing dependencies in our podspec from ColorThemer subspecs to Component subspecs.
Fixed podspec
Made MDCFeatureHighlightView public with two properties: innerHighlightColor and outerHighlightColor.
Make [MDCCollectionViewController cellWidthAtSectionIndex:] public.
No change in public APIs.
No change in public APIs.
Add kSelectedCellAccessibilityHintKey
Add kDeselectedCellAccessibilityHintKey
Add [MDCTypography boldItalicFontOfSize:]
Add [MDCTypography boldFontFromFont:]
Add [MDCTypography italicFontFromFont:]
Add [MDCTypography isLargeForContrastRatios]
Given the usage of clients on versions of iOS below 8.0 and the increased power of the APIs available to us on iOS 8, our minimum iOS version is bumped from iOS 7 to 8.
Tab component with MDCTabBar (#1164) is an implementation of the Material tabs used to explore and switch between different views. Try tabs out! (Brian Moore with Will Larche)
-[MDCInkTouchController initWithView:]
changed from nullable instancetype
to nonnull instancetype
.MDCProgressViewBackwardAnimationMode
enumeration and -[MDCProgressView backwardProgressAnimationMode]
to control how the progress view acts when its progress value is set to a smaller value than the current value.This point release changes certain podfiles and instructions to refer to the published pod up at CocoaPods.
This point release removes the examples from private/ThumbTrack
; they didn't follow our normal conventions and was confusing pod try
.
This point release fixes stale references to MDFFontDiskLoader, MDFSpritedAnimationView, and MDFRobotoFontLoader in our CocoaPods podspec.
None.
The following components have been refactored out of MDC into their own repos:
Please note that while MDC's repo is private, there is no way for MDFRobotoFontLoader to formally depend on MDCTypographyFontLoading, even though it informally implements the protocol. This means that MDFRobotoFontLoader can't be used out of the box to configure Typography with Roboto. Once we go public, a pull request to MDFFontDiskLoader will be created to add this convenience. Until that time, you can manually extend your local copy of MDFRobotoFontLoader to declare that it implements MDCTypographyFontLoading.
modified property: shadowMaskEnabled
in MDCShadowLayer
Type of change: | declaration |
---|---|
From: | @property (assign, readwrite, nonatomic) BOOL shadowMaskEnabled; |
To: | @property (getter=isShadowMaskEnabled, assign, readwrite, nonatomic) BOOL shadowMaskEnabled; |
modified method: -buttonBar:viewForItem:layoutHints:
in MDCButtonBarDelegate
Type of change: | swift declaration |
---|---|
From: | func buttonBar(_ buttonBar: MDCButtonBar!, viewForItem barButtonItem: Any!, layoutHints: Any!) -> Any! |
To: | func buttonBar(_ buttonBar: MDCButtonBar, viewForItem barButtonItem: Any!, layoutHints: Any!) -> Any! |
modified method: -buttonBar:viewForItem:layoutHints:
in MDCButtonBarDelegate
Type of change: | declaration |
---|---|
From: | - (UIView *)buttonBar:(MDCButtonBar *)buttonBar viewForItem:(UIBarButtonItem *)barButtonItem layoutHints:(MDCBarButtonItemLayoutHints)layoutHints; |
To: | - (nonnull UIView *)buttonBar:(nonnull MDCButtonBar *)buttonBar viewForItem:(nonnull UIBarButtonItem *)barButtonItem layoutHints:(MDCBarButtonItemLayoutHints)layoutHints; |
modified property: items
in MDCButtonBar
Type of change: | declaration |
---|---|
From: | @property (readwrite, copy, nonatomic) NSArray<UIBarButtonItem *> *items; |
To: | @property (readwrite, copy, nonatomic, nullable) NSArray<UIBarButtonItem *> *items; |
new method: -updateTopLayoutGuide
in MDCFlexibleHeaderViewController
modified class: MDCFontDiskLoader
Type of change: | key.deprecation_message |
---|---|
From: | `` |
To: | Use https://github.com/material-foundation/material-font-disk-loader-ios instead. |
modified class: MDCFontDiskLoader
Type of change: | key.always_deprecated |
---|---|
From: | 0 |
To: | 1 |
modified class: MDCRobotoFontLoader
Type of change: | key.deprecation_message |
---|---|
From: | `` |
To: | Use https://github.com/material-foundation/material-roboto-font-loader-ios instead. |
modified class: MDCRobotoFontLoader
Type of change: | key.always_deprecated |
---|---|
From: | 0 |
To: | 1 |
modified class: MDCSpritedAnimationView
Type of change: | key.deprecation_message |
---|---|
From: | `` |
To: | Use https://github.com/material-foundation/material-sprited-animation-view-ios instead. |
modified class: MDCSpritedAnimationView
Type of change: | key.always_deprecated |
---|---|
From: | 0 |
To: | 1 |
MDCFlexibleHeaderView
is now marked IB_DESIGNABLE
.MDCSwitch
is completely deprecated and will be removed in the next release. We recommend apps use UISwitch instead.scripts/check_components
(#946) (Adrian Secord)scripts/check_components
(#946) (Adrian Secord)scripts/check_components
(#946) (Adrian Secord)scripts/check_components
(#946) (Adrian Secord)No public API or component changes.
Added missing components/private/Application/src/MaterialApplication.h umbrella header.
No public API changes in this release. Note that the 17.0.0 release was not published to CocoaPods, so if you are updating from 16.3.0 you will see the breaking change from 17.0.0.
The behavior of MDCSnackbar has been changed to better match the spec:
modified method: -setBackgroundColor:
in MDCButton
Type of change: | key.deprecation_message |
---|---|
From: | Use setBackgroundColor:forState: instead. |
To: | |
modified method: -setBackgroundColor:
in MDCButton
Type of change: | key.always_unavailable |
---|---|
From: | 0 |
To: | 1 |
modified method: -setBackgroundColor:
in MDCButton
Type of change: | key.always_deprecated |
---|---|
From: | 1 |
To: | 0 |
modified method: -setBackgroundColor:
in MDCButton
Type of change: | declaration |
---|---|
From: | - (void)setBackgroundColor:(nullable UIColor *)backgroundColor __deprecated_msg("Use setBackgroundColor:forState: instead."); |
To: | - (void)setBackgroundColor:(nullable UIColor *)backgroundColor; |
new property: editingSelectorColor
in MDCCollectionViewCell
MDCInkTouchController.inkView
Auto-generated by running:
scripts/api_diff -o 203562553800ed3d3b5eebfd1dd76cda875d833c -n f8e2c8b5e87d0414f6b08f691949ecebfaca41b8
MDCInkGestureRecognizer
. From private/MDCInkGestureRecognizer.h to MDCInkGestureRecognizer.h.MDCNavigationBar.titleAlignment
MDCNavigationBarTitleAlignmentCenter
MDCNavigationBarTitleAlignmentLeading
MDCNavigationBarTitleAlignment
MDCNavigationBar.textAlignment
. Use titleAlignment instead.Auto-generated by running:
scripts/api_diff -o 1926458f491c928adfb573a6eda38b6d5b5bc55e -n c39811a2344114302327b6fa64d86346bacbea9a
MDCDialogPresentationController.dismissOnBackgroundTap
UIViewController (MaterialDialogs)
UIViewController.mdc_dialogPresentationController
MDCSwitch
. Removed NSCoding. Added NSSecureCoding.Auto-generated by running:
scripts/api_diff -o 52692216832dc446ae2471bd2f42a40cd8746bbe -n 9ecf191c8d5fa6d8afc7ba119f4cb0ebe926483c
-[MDCFontDiskLoader initWithName:URL:]
-[MDCFontDiskLoader registerFont]
-[MDCFontDiskLoader setFontName:]
-[MDCFontDiskLoader unregisterFont]
MDCFontDiskLoader.hasFailedRegistration
MDCFontDiskLoader.isRegistered
Auto-generated by running:
scripts/api_diff -o fb77a9716a80ba4ee2a9f92a81a89335570366e3 -n 8fa99ffb150b99597f19783d54203ff77a4219d2
-[MDCFontDiskLoader initWithName:URL:]
. Use initWithFontName:fontURL: instead.-[MDCFontDiskLoader registerFont]
. Use load instead.-[MDCFontDiskLoader setFontName:]
. Create a new instance if you need to specifiy a different font name.-[MDCFontDiskLoader unregisterFont]
. Use unload instead.MDCFontDiskLoader.hasFailedRegistration
. Use loadFailed instead.MDCFontDiskLoader.isRegistered
. Use loaded instead.Auto-generated by running:
scripts/api_diff -o 51fbbacdf98a1f086cdbf6210f849c8133e91183 -n dd3d2622f6935e70854d3ccb72677b09e19e045a
-[MDCFontDiskLoader initWithFontName:fontURL:]
-[MDCFontDiskLoader load]
-[MDCFontDiskLoader unload]
MDCFontDiskLoader.loadFailed
MDCFontDiskLoader.loaded
MDCFontDiskLoader.fontName
. Removed strong. Added readonly, copy.MDCFontDiskLoader.fontURL
. Removed strong, nullable. Added copy, nonnull.-[MDCFontDiskLoader setFontName:]
.@property (nonatomic, strong, nonnull) NSString *fontName - (void)setFontName:(nonnull NSString *)fontName
+[MDCRobotoFontLoader sharedInstance]
.+ (nonnull instancetype)sharedInstance + (nonnull MDCRobotoFontLoader *)sharedInstance
Auto-generated by running:
scripts/api_diff -o 6b00b97156fcd8ed5a661c736df6b363cf4c8457 -n 9ef47c149996f078e5f6a4ed3474688e187ab573
Auto-generated by running:
scripts/api_diff -o 5d7ad466b9e1429ad6242272958b149ded34da63 -n 205b1b49fd311af9246133e1499007dec0957e4b
New component.
Auto-generated by running:
scripts/api_diff -o 313365e03bc6f74f43910264ee31d1e2721db36b -n e66a70dc0cd3bb40eb0f4ff3d5867bafba20db3a
No public API changes detected.
Hotfix for Xcode 8.0 beta 3 (8S174q) compilation.
Auto-generated by running:
scripts/api_diff -o 50ed805a58529c8cd3a0bfe56a9b99937134ad2c -n e8dbfebbb20f3d1314b5396e6cc1f76f9d23beb2
No public API changes detected.
Auto-generated by running:
scripts/api_diff -o 0c7bda2e69db44668360b89e3403a7ad9e16c3aa -n 10e4a258fa529178d1aa6ae8962193eb18b43d20
+[MDCAlertAction actionWithTitle:handler:]
+[MDCAlertController alertControllerWithTitle:message:]
-[MDCAlertController addAction:]
MDCActionHandler
MDCAlertAction.title
MDCAlertAction
MDCAlertController.actions
MDCAlertController.message
MDCAlertController.title
MDCAlertController
-[MDCSpritedAnimationView startAnimatingWithCompletion:]
.- (void)startAnimatingWithCompletion:(nullable void (^)())completion - (void)startAnimatingWithCompletion:(nullable void (^)(BOOL))completion
isTracking
UIControl method (Max Luzuriaga)isTracking
UIControl method (Max Luzuriaga)Auto-generated by running:
scripts/api_diff -o c6523eae8e811b1c89d94073b9153a03390b1950 -n edab0db4908985cd0b56003b4341d5f064f98d6a
New component.
Auto-generated by running:
scripts/api_diff -o ec923edf948c5c0ef8cef52f3a3b26a21cbf29d9 -n 34f12cf42f45e30bada83ff6c4c67d5104201a00
No public API changes detected.
New component.
Auto-generated by running:
scripts/api_diff -o bdc034da8700a9cbd6064823dc045b511d622f8c -n f9f6d8e87d6cdaf884ac2d3ad462403bdb2fd008
No public API changes detected.
Auto-generated by running:
scripts/api_diff -o e4b240934cbf7211790e0929c73652dbd7c2f46f -n 55a289f0cfeebdc10931243d613d4cf5bcef3986
From | To | Kind |
---|---|---|
Required | Optional | optional |
MDCButtonBar.layoutDirection
MDCButtonBar.items
From | To | Kind |
---|---|---|
@property (nonatomic, copy) NSArray *items | @property (nonatomic, copy) NSArray<UIBarButtonItem *> *items | declaration |
-[MDCCollectionViewStyling indexPathsForInlaidItems]
.- (nullable NSArray *)indexPathsForInlaidItems - (nullable NSArray<NSIndexPath *> *)indexPathsForInlaidItems
MDCNavigationBar.layoutDirection
MDCNavigationBar.leadingBarButtonItems
From | To | Kind |
---|---|---|
@property (nonatomic, copy, nullable) NSArray *leadingBarButtonItems | @property (nonatomic, copy, nullable) NSArray<UIBarButtonItem *> *leadingBarButtonItems | declaration |
MDCNavigationBar.leftBarButtonItems
From | To | Kind |
---|---|---|
@property (nonatomic, copy, nullable) NSArray *leftBarButtonItems | @property (nonatomic, copy, nullable) NSArray<UIBarButtonItem *> *leftBarButtonItems | declaration |
MDCNavigationBar.rightBarButtonItems
From | To | Kind |
---|---|---|
@property (nonatomic, copy, nullable) NSArray *rightBarButtonItems | @property (nonatomic, copy, nullable) NSArray<UIBarButtonItem *> *rightBarButtonItems | declaration |
MDCNavigationBar.trailingBarButtonItems
From | To | Kind |
---|---|---|
@property (nonatomic, copy, nullable) NSArray *trailingBarButtonItems | @property (nonatomic, copy, nullable) NSArray<UIBarButtonItem *> *trailingBarButtonItems | declaration |
From | To | Kind |
---|---|---|
@property (nonatomic, copy, nullable) NSArray *leftBarButtonItems | @property (nonatomic, copy, nullable) NSArray<UIBarButtonItem *> *leftBarButtonItems | declaration |
From | To | Kind |
---|---|---|
@property (nonatomic, copy, nullable) NSArray *rightBarButtonItems | @property (nonatomic, copy, nullable) NSArray<UIBarButtonItem *> *rightBarButtonItems | declaration |
New component.
New component.
arc lint --everything
. Again. (Adrian Secord)arc lint --everything
. Again. (Adrian Secord)arc lint --everything
. Again. (Adrian Secord)arc lint --everything
. Again. (Adrian Secord)arc lint --everything
. Again. (Adrian Secord)arc lint --everything
. Again. (Adrian Secord)arc lint --everything
. Again. (Adrian Secord)arc lint --everything
. Again. (Adrian Secord)arc lint --everything
. Again. (Adrian Secord)Auto-generated by running:
scripts/api_diff -o 5cea05817470a3fd906dc3663aff5628491e3224 -n 914490127624d9526f24a497021efffddcf3d567
No public API changes detected.
Auto-generated by running:
scripts/api_diff -o a33f87199b2f4e29e35f0b93c75d60520742d5aa -n 0b277c9ff00628400b291d2e6900ff6389b27ecf
-[MDCFontDiskLoader setHasFailedRegistration:]
-[MDCFontDiskLoader setIsRegistered:]
+[MDCPalette paletteWithTints:accents:]
-[MDCPalette initWithTints:accents:]
MDCPaletteAccent100Name
MDCPaletteAccent200Name
MDCPaletteAccent400Name
MDCPaletteAccent700Name
MDCPaletteTint100Name
MDCPaletteTint200Name
MDCPaletteTint300Name
MDCPaletteTint400Name
MDCPaletteTint500Name
MDCPaletteTint50Name
MDCPaletteTint600Name
MDCPaletteTint700Name
MDCPaletteTint800Name
MDCPaletteTint900Name
Auto-generated by running:
scripts/api_diff -o dc74cd290f327e950eab32b48f3105c55972fad9 -n d4a3ac376f5c8498cfb52401f4fbb69d2e318897
New component.
-[MDCFontDiskLoader unregisterFont]
MDCFontDiskLoader.hasFailedRegistration
. Deprecated setter.MDCFontDiskLoader.isRegistered
. Deprecated setter.MDCFontDiskLoader
.Added NSCopying.
Material Components for iOS now requires Cocoapods 1.0.0.
Auto-generated by running:
scripts/api_diff -o 0c97c7e25888d9da312c8610e21aa635cf9fb395 -n 1fc92b09a8539cf235667c4b2fb83c0f52578d65
-[MDCRobotoFontLoader init]
Auto-generated by running:
scripts/api_diff -o cdbe7e499d85c320c41f31e51cd7cf29c3afed48 -n 636df09ea57a7cdefdacad3f53277c76df968f72
MDCNavigationBar.hidesBackButton
MDCNavigationBar.layoutDirection
MDCNavigationBar.leadingBarButtonItem
MDCNavigationBar.leadingBarButtonItems
MDCNavigationBar.leadingItemsSupplementBackButton
MDCNavigationBar.leftBarButtonItem
MDCNavigationBar.leftBarButtonItems
MDCNavigationBar.leftItemsSupplementBackButton
MDCNavigationBar.rightBarButtonItem
MDCNavigationBar.rightBarButtonItems
MDCNavigationBar.title
MDCNavigationBar.trailingBarButtonItem
MDCNavigationBar.trailingBarButtonItems
MDCNavigationBar
. Removed MDCUINavigationItemObservables.Auto-generated by running the following while checked out at 4bc99e8ad0fe0ac7e9acc044591a8581165fb5c2
:
scripts/api_diff -o 2153f8fa453ecec4dfe48a328e331846d5d37aac -n bbabb375953fbd01c3f818ac9092b55fe56dd9b9
-[MDCAppBarContainerViewController headerViewController]
MDCAppBarContainerViewController ()
-[MDCButtonBar reloadButtonViews]
MDCButtonBar ()
MDCButtonBar.buttonItems
MDCButtonBar.delegate
MDCButtonBar (Builder)
. From MDCButtonBar.h to private/MDCButtonBar+Private.h.MDCNavigationBar ()
MDCNavigationBar.leftButtonBarDelegate
MDCNavigationBar.rightButtonBarDelegate
MDCUINavigationItemKVO
Auto-generated by running:
scripts/api_diff -o d2f436fdcfa711da5a8a077b42feb052c1abdf9e -n 6c8ca274056aed6850920f6010b47655c67730c9
MDCAppBarAddViews()
MDCAppBarParenting.headerStackView
MDCAppBarParenting.headerViewController
MDCAppBarParenting.navigationBar
MDCAppBarParenting
MDCAppBarPrepareParent()
MDCButtonBar.layoutPosition
MDCButtonBarLayoutPositionLeft
MDCButtonBarLayoutPositionNone
MDCButtonBarLayoutPositionRight
MDCButtonBarLayoutPosition
-[MDCCollectionViewController collectionView:didHighlightItemAtIndexPath:]
-[MDCCollectionViewController collectionView:didUnhighlightItemAtIndexPath:]
-[MDCCollectionViewController collectionView:shouldHighlightItemAtIndexPath:]
-[MDCCollectionViewStylingDelegate collectionView:inkColorAtIndexPath:]
-[MDCCollectionViewEditingDelegate collectionView:didDeleteItemsAtIndexPaths:]
From | To | Kind |
---|---|---|
- (void)collectionView:(nonnull UICollectionView *)collectionView didDeleteItemsAtIndexPaths:(nonnull NSArray *)indexPaths | - (void)collectionView:(nonnull UICollectionView *)collectionView didDeleteItemsAtIndexPaths:(nonnull NSArray<NSIndexPath *> *)indexPaths | declaration |
From | To | Kind |
---|---|---|
- (void)collectionView:(nonnull UICollectionView *)collectionView willDeleteItemsAtIndexPaths:(nonnull NSArray *)indexPaths | - (void)collectionView:(nonnull UICollectionView *)collectionView willDeleteItemsAtIndexPaths:(nonnull NSArray<NSIndexPath *> *)indexPaths | declaration |
From | To | Kind |
---|---|---|
- (void)collectionView:(nonnull UICollectionView *)collectionView didApplyInlayToItemAtIndexPaths:(nonnull NSArray *)indexPaths | - (void)collectionView:(nonnull UICollectionView *)collectionView didApplyInlayToItemAtIndexPaths:(nonnull NSArray<NSIndexPath *> *)indexPaths | declaration |
From | To | Kind |
---|---|---|
- (void)collectionView:(nonnull UICollectionView *)collectionView didRemoveInlayFromItemAtIndexPaths:(nonnull NSArray *)indexPaths | - (void)collectionView:(nonnull UICollectionView *)collectionView didRemoveInlayFromItemAtIndexPaths:(nonnull NSArray<NSIndexPath *> *)indexPaths | declaration |
New component.
Auto-generated by running:
scripts/api_diff -o da19cc89a5bb91c94480aee818d2f0ac52410e1c -n bac6ea73c709e95ac88f202ca6c02e1ab88e91f5
MDCSwitch.offImage
MDCSwitch.onImage
MDCTypographyFontLoader
Auto-generated by running:
scripts/api_diff -o 037551fa3b17c25f6546d290e41f747e3713bc4f -n 4b6b0a414e599af1fe3a29bba66af8e04ba67b4d
No public API changes.
Auto-generated by running:
scripts/api_diff -o 55afa3aaef67799bdb8a94881f31c5c3b242e9a6 -n fe1ac2f14b7ad4179c84b01590df9c93289f2e36
New component.
New component.
New component.
MDCPageControl
. Added UIScrollViewDelegate.Auto-generated by running:
scripts/api_diff -o 1542251633905c3c2089b38f1c01a5010a8894f1 -n 789beeb556aab8b4aeddb71fa837d7db8c4660d7
MDCFontResource
Auto-generated by running:
scripts/api_diff -o 11959487eb429c37b382c521a1c469eac96ed0da -n 7cc87bd6d90ed2c641212339f00f67b08fb76314
+[MDCFloatingButton floatingButtonWithShape:]
MDCButton.inkMaxRippleRadius
MDCButton.inkStyle
MDCButton.underlyingColorHint
MDCButton.uppercaseTitle
+[MDCFloatingButton buttonWithShape:]
. Use floatingButtonWithShape: instead.MDCButton.shouldCapitalizeTitle
. Use uppercaseTitle instead.MDCButton.underlyingColor
. Use underlyingColorHint instead.MDCFlexibleHeaderContentImportanceDefault
MDCFlexibleHeaderContentImportanceHigh
MDCFlexibleHeaderContentImportance
MDCFlexibleHeaderView.headerContentImportance
MDCFlexibleHeaderView.shadowLayer
. Removed retain. Added strong.-[MDCInkView evaporateToPoint:completion:]
-[MDCInkView evaporateWithCompletion:]
-[MDCInkView reset]
-[MDCInkView spreadFromPoint:completion:]
MDCInkView.clipsRippleToBounds
MDCInkView.fillsBackgroundOnSpread
MDCInkView.gravitatesInk
-[MDCInkTouchController inkViewAtTouchLocation:]
MDCInkTouchController.defaultInkView
MDCInkTouchController.inkView
. To configure ink views before display, use defaultInkView or your delegate's inkTouchController:inkViewAtTouchLocation:. To find an ink view at a particular location, use inkViewAtTouchLocation: instead.MDCRobotoFontLoader
. Added MDCTypographyFontLoading.MDCScrollViewDelegateCombining
. This component is now available at https://github.com/google/GOSScrollViewDelegateMultiplexer.MDCScrollViewDelegateMultiplexer
. This component is now available at https://github.com/google/GOSScrollViewDelegateMultiplexer.Auto-generated by running:
scripts/api_diff -o ddb35150fe10c2974b63d1e29c4ecce4ccaa51fb -n ad904b8748ce469af886b2f27172d8e3c44928e8
-[MDCAppBar addSubviewsToParent]
MDCAppBar.headerStackView
MDCAppBar.headerViewController
MDCAppBar.navigationBar
MDCAppBarContainerViewController.appBar
MDCAppBar
-[MDCAppBarContainerViewController headerViewController]
Use appBar.headerViewController instead.MDCAppBarAddViews()
. Please create an instance of MDCAppBar instead.MDCAppBarParenting.headerStackView
. Please create an instance of MDCAppBar instead.MDCAppBarParenting.headerViewController
. Please create an instance of MDCAppBar instead.MDCAppBarParenting.navigationBar
. Please create an instance of MDCAppBar instead.MDCAppBarParenting
. Please create an instance of MDCAppBar instead.MDCAppBarPrepareParent()
. Please create an instance of MDCAppBar instead.-[MDCFlexibleHeaderView shiftHeaderOffScreenAnimated:]
MDCFlexibleHeaderView.shiftBehavior
MDCFlexibleHeaderView.behavior
Use shiftBehavior instead.MDCFlexibleHeaderView.contentView
Please register views directly to the flexible header.arc lint --everything --apply-patches
(Jeff Verkoeyen)arc lint --everything --apply-patches
(Jeff Verkoeyen)arc lint --everything --apply-patches
(Jeff Verkoeyen)arc lint --everything --apply-patches
(Jeff Verkoeyen)arc lint --everything --apply-patches
(Jeff Verkoeyen)arc lint --everything --apply-patches
(Jeff Verkoeyen)arc lint --everything --apply-patches
(Jeff Verkoeyen)arc lint --everything --apply-patches
(Jeff Verkoeyen)contentView!
to contentView
. This will be made apparent at build time.-[MDCFlexibleHeaderViewController addFlexibleHeaderViewToParentViewControllerView]
, MDCFlexibleHeaderParentViewController
, and +[MDCFlexibleHeaderViewController addToParent:]
. These methods were marked deprecated in 1.0.0. Jeff VerkoeyenComponents
Documentation
[Conventions] Moved all docs assets into a docs/assets
directory per component by convention. Issue #130 filed by peterfriese. Closed by Jeff Verkoeyen
[CONTRIBUTING] Document our file system conventions in CONTRIBUTING.md. Jeff Verkoeyen
[CONTRIBUTING] Document our pull request expectations in CONTRIBUTING.md. Jeff Verkoeyen
[Switch] Removed internal docs that were pretending to be public docs. Jeff Verkoeyen
Catalog
Demos
Misc
arc lint --everything
.Enable line length warnings in arc lint. Jeff Verkoeyen
Added script to run pod install on all pods. Randall Li
Fix build breakage in MDCCatalog.
[FlexibleHeader] Removed redundant APIs from MDCFlexibleHeaderContainerViewController. Jeff Verkoeyen
Increasing our warnings coverage. Jeff Verkoeyen
shadowIntensity
property, use setShadowLayer:intensityDidChangeBlock: instead. Jeff VerkoeyeninkTouchControllerShouldProcessInkTouches:
to inkTouchController:shouldProcessInkTouchesAtTouchLocation:
. Chris CoxThis is a template. When cutting a new release, rename “master” to the release number and create a new, empty “Master” section.