Releases: material-components/material-components-ios
v60.1.0
60.1.0
Component changes
Tabs
Changes
- [Catalog] Fix Swift example imports (#4780) (Robert Moore)
MaskedTransition
Changes
- Update README.md (#4758) (trungducc)
schemes/Color
Changes
- Add schedule to the migration guide. (#4768) (featherless)
- [Automated] Regenerate schemes/Color readme. (Jeff Verkoeyen)
FeatureHighlight
Changes
- [Catalog] Fix Swift example imports (#4780) (Robert Moore)
AppBar
Changes
- Add MDCAppBar migration guide. (#4762) (featherless)
- Add deprecation schedule to the MDCAppBar migration guide. (#4802) (featherless)
- Annotate APIs as to-be-deprecated. (#4763) (featherless)
- [Catalog] set cell selection style to none in several examples (#3870) (#4776) (Wenyu Zhang)
- Fix a bug with WKWebView as a tracking scroll view. (#4701) (featherless)
Buttons
Changes
- Fix
safeAreaInsets
availability check (#4775) (Robert Moore) - [Catalog] Fix Swift example imports (#4780) (Robert Moore)
ButtonBar
Changes
- [Catalog] Fix Swift example imports (#4780) (Robert Moore)
TextFields
Changes
- Update placeholder and outline border color when enabling/disabling text fields with outline controllers (#4779) (Andrew Overton)
- [Catalog] Fix Swift example imports (#4780) (Robert Moore)
Snackbar
Changes
- VoiceOver users can exit the snackbar (#4799) (Robert Moore)
- [Catalog] Fix Snackbar crash after switching between LEGACY and NEW (#4700) (trungducc)
- Add switch control focus control to snackbar when an action is in it (#4795) (Yarden Eitan)
NavigationBar
Changes
- Update swift example to not depend on objc (#4784) (Cody Weaver)
- [Catalog] Fix Swift example imports (#4780) (Robert Moore)
- [Swift] Fix remaining imports (#4792) (Robert Moore)
ActivityIndicator
Changes
Dialogs
Changes
- [Catalog] Fix Swift example imports (#4780) (Robert Moore)
BottomNavigation
Changes
- [Catalog] Fix Swift example imports (#4780) (Robert Moore)
PageControl
Changes
- [Catalog] Fix Swift example imports (#4780) (Robert Moore)
AnimationTiming
Changes
- [Catalog] Fix Swift example imports (#4780) (Robert Moore)
HeaderStackView
Changes
- Update swift example to not depend on obj-c example (#4783) (Cody Weaver)
- [Catalog] Fix Swift example imports (#4780) (Robert Moore)
- [Swift] Fix remaining imports (#4792) (Robert Moore)
FlexibleHeader
Changes
- Add minMaxHeightIncludesSafeArea migration guide. (#4767) (featherless)
- Fix bug with WKWebView as a tracking scroll view. (#4701) (featherless)
- Fix infinite recursion when VoiceOver is enabled. (#4769) (featherless)
- Fix property setter (#4771) (ianegordon)
- Move all shift behavior APIs to their own header. (#4778) (featherless)
ShadowElevations
Changes
- Rewrite ShadowElevationsPointsLabel in Swift (#4782) (Robert Moore)
- [Catalog] Fix Swift example imports (#4780) (Robert Moore)
- [Swift] Fix remaining imports (#4792) (Robert Moore)
Palettes
Changes
- [Catalog] Fix Swift example imports (#4780) (Robert Moore)
v60.0.0
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.
Breaking changes
FlexibleHeader
- Breaking Make preferredStatusBarStyle settable. (#4750) (featherless)
This breaking change only affects Swift code and requires the following changes.
// Before
.preferredStatusBarStyle()
// After
.preferredStatusBarStyle
New features
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
Upcoming deprecations
MDCColorScheme
and MDCBasicColorScheme
will both be deprecated on the following timeline:
- October 10, 2018: Both APIs and any corresponding themer API will be deprecated.
- November 10, 2018: Both APIs and any corresponding themer API will be deleted.
Learn more by reading the migration guide.
API changes
ActivityIndicator+ColorThemer
MDCActivityIndicatorColorThemer(ToBeDeprecated)
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 |
AppBar+ColorThemer
MDCAppBarColorThemer(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 |
BottomAppBar+ColorThemer
MDCBottomAppBarColorThemer(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 |
BottomNavigation+ColorThemer
MDCBottomNavigationBarColorThemer(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 |
ButtonBar+ColorThemer
MDCButtonBarColorThemer(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 |
Buttons+ColorThemer
MDCButtonColorThemer(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 |
Chips+ColorThemer
MDCChipViewColorThemer(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 |
Dialogs+ColorThemer
MDCAlertColorThemer(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 |
FeatureHighlight+ColorThemer
MDCFeatureHighlightColorThemer(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 |
FlexibleHeader+ColorThemer
MDCFlexibleHeaderColorThemer(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 |
FlexibleHeader
MDCFlexibleHeaderViewController
new property: preferredStatusBarStyle
in MDCFlexibleHeaderViewController
new property: inferPreferredStatusBarStyle
in MDCFlexibleHeaderViewController
removed method: -preferredStatusBarStyle
in MDCFlexibleHeaderViewController
HeaderStackView+ColorThemer
MDCHeaderStackViewColorThemer(ToBeDeprecated)
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 |
Ink+ColorThemer
MDCInkColorThemer(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 |
NavigationBar+ColorThemer
MDCNavigationBarColorThemer(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 |
PageControl+ColorThemer
MDCPageControlColorThemer(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 |
ProgressView+ColorThemer
MDCProgressViewColorThemer(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 |
Slider+ColorThemer
MDCSliderColorThemer(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)
...
v59.2.2
This patch release undoes some additional App Bar initialization changes that were introduced in
v59.2.0.
Component changes
AppBar
Changes
- Move more app bar logic back to the init phase. (#4749) (featherless)
v59.2.1
This patch release reverts an unintentional change in App Bar shadow layer initialization behavior
that was introduced in v59.2.0.
Component changes
AppBar
Changes
v59.2.0
This minor release introduces several new improvements to the AppBar component and bug fixes and
accessibility improvements to various components.
New features
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)
API changes
AppBar+ColorThemer
MDCAppBarColorThemer
new class method: +applySurfaceVariantWithColorScheme:toAppBarViewController:
in MDCAppBarColorThemer
new class method: +applyColorScheme:toAppBarViewController:
in MDCAppBarColorThemer
AppBar
MDCAppBar
new property: appBarViewController
in MDCAppBar
MDCAppBarNavigationControllerDelegate
new method: -appBarNavigationController:willAddAppBarViewController:asChildOfViewController:
in MDCAppBarNavigationControllerDelegate
MDCAppBarNavigationController
new method: -appBarViewControllerForViewController:
in MDCAppBarNavigationController
MDCAppBarContainerViewController
new property: appBarViewController
in MDCAppBarContainerViewController
MDCAppBarViewController
new class: MDCAppBarViewController
AppBar+TypographyThemer
MDCAppBarTypographyThemer
new class method: +applyTypographyScheme:toAppBarViewController:
in MDCAppBarTypographyThemer
TextFields
MDCTextInputController
new method: -setHelperText:helperAccessibilityLabel:
in MDCTextInputController
Component changes
Tabs
Changes
AppBar
Changes
- Complete pass at documentation modernization. (#4708) (featherless)
- Enable inferTopSafeAreaInsetFromViewController on the App Bar in the navigation controller. (#4693) (featherless)
- Expose MDCAppBarViewController as a replacement for MDCAppBar. (#4695) (featherless)
- Fix bug where root view controller during initialization of nav controller would not be injected with an App Bar. (#4691) (featherless)
- Implement setViewControllers on MDCAppBarNavigationController. (#4736) (featherless)
- Increase likelihood that we detect existing App Bars when auto-injecting. (#4692) (featherless)
- Rename MDCAppBar.h to MDCAppBarViewController.h. (#4704) (featherless)
- [Catalog] Conversion to new App Bar View Controller API (#4696) (featherless)
TextFields
Changes
- Add setHelperText:helperAccessibilityLabel (#4661) (Andrew Overton)
- Consider UIUserInterfaceLayoutDirection when drawing outlined text controller outline path (#4719) (Andrew Overton)
Chips
Changes
- Allow clients to set
accessibilityLabel
on MDCChipView (#4664) (compositeprimes)
Snackbar
Changes
BottomAppBar
Changes
- Add a11y guide to README (#4705) (Cody Weaver)
- [Catalog] Conversion to new App Bar View Controller API (#4696) (featherless)
NavigationBar
Changes
- ButtonBar example with associated UIButton (#4677) (ianegordon)
BottomSheet
Changes
- Examples support accessible scrim (#4711) (Robert Moore)
- [Catalog] Conversion to new App Bar View Controller API (#4696) (featherless)
Dialogs
Changes
- Fix button hit areas to match accessibility (#4684) (Cody Weaver)
BottomNavigation
Changes
- Fix safe area insets on bottom nav example (#4637) (John Detloff)
- Remove duplicate tab position descriptions (#4679) (Robert Moore)
- [Catalog] Conversion to new App Bar View Controller API (#4696) (featherless)
FlexibleHeader
Changes
- Allow additionalSafeAreaInsets to respect contextual top insets. (#4697) (featherless)
- Fix infinite recursion when observesTrackingScrollViewScrollEvents is enabled. (#4694) (featherless)
- Fixes a layout bug with VoiceOver on that was introduced in v57.0.0 (5dc67c88c06f11761769de1d0bae34ff2c657046). (#4698) (featherless)
- [AppBar] Complete pass at documentation modernization. (#4708) (featherless)
ShadowElevations
Changes
v59.1.1
This patch release fixes a bug with Flexible Header when VoiceOver is enabled.
API changes
Component changes
FlexibleHeader
Changes
v59.1.0
AppBar and FlexibleHeader shipped several new features in this release. This release also includes additional accessibility improvements and examples, and also fixes some bugs.
New features
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.
API changes
AppBar
MDCAppBarNavigationController
new class: MDCAppBarNavigationController
new property: delegate
in MDCAppBarNavigationController
new method: -appBarForViewController:
in MDCAppBarNavigationController
MDCAppBarNavigationControllerDelegate
new protocol: MDCAppBarNavigationControllerDelegate
new method: -appBarNavigationController:willAddAppBar:asChildOfViewController:
in MDCAppBarNavigationControllerDelegate
MDCAppBar
new property: inferTopSafeAreaInsetFromViewController
in MDCAppBar
FlexibleHeader
MDCFlexibleHeaderView
new property: observesTrackingScrollViewScrollEvents
in MDCFlexibleHeaderView
Component changes
AppBar
Changes
- Add an inferTopSafeAreaInsetFromViewController behavior. (#4648) (featherless)
- Add new MDCAppBarNavigationController API. (#4650) (featherless)
- [FlexibleHeader] Add support for observing the tracking scroll view. (#4647) (featherless)
Ink
Changes
- [Catalog] Improve Ink demo color contrast (#4660) (Robert Moore)
- add commonMDCInkViewInit call to -initWithCoder: (#4662) (Andrew Overton)
Snackbar
Changes
- Create explicit singleton (#4556) (Robert Moore)
- Revert "Create explicit singleton (#4556)" (Jeff Verkoeyen)
Cards
Changes
- accessibility example for collection cards (#4488) (Galia Kaufman)
- Accessibility: Fixing documentation typos (#4634) (Galia Kaufman)
LibraryInfo
Changes
- Version bump. (Jeff Verkoeyen)
Dialogs
Changes
- Best example description (#4643) (ianegordon)
- Revert "Update buttons touch area to be 48x48 minimum (#4624)" (#4675) (ianegordon)
- Update buttons touch area to be 48x48 minimum (#4624) (Cody Weaver)
BottomNavigation
Changes
- Explicitly update label visibility after titleVisibility is set (#4635) (Andrew Overton)
- Fix delayed ink ripple (#4625) (Robert Moore)
- Give UITabBarItems' accessibilityIdentifiers to MDCBottomNavigationBa… (#4599) (Andrew Overton)
FlexibleHeader
Changes
v59.0.0
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.
Breaking changes
AppBar, TextFields, BottomNavigation, and Ink all removed support for encoding/decoding their custom properties.
New features
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
.
API changes
FlexibleHeader
MDCFlexibleHeaderView
new property: topSafeAreaGuide
in MDCFlexibleHeaderView
MDCFlexibleHeaderViewController
new property: inferTopSafeAreaInsetFromViewController
in MDCFlexibleHeaderViewController
TextFields
MDCTextInputControllerLegacyFullWidth
modified class: MDCTextInputControllerLegacyFullWidth
Type of change: | Declaration |
---|---|
From: | @interface MDCTextInputControllerLegacyFullWidth : MDCTextInputControllerFullWidth <NSSecureCoding> |
To: | @interface MDCTextInputControllerLegacyFullWidth : MDCTextInputControllerFullWidth |
MDCTextInputUnderlineView
modified class: MDCTextInputUnderlineView
Type of change: | Declaration |
---|---|
From: | @interface MDCTextInputUnderlineView : UIView <NSCopying, NSSecureCoding> |
To: | @interface MDCTextInputUnderlineView : UIView <NSCopying> |
MDCTextInputController
modified protocol: MDCTextInputController
Type of change: | Declaration |
---|---|
From: | @protocol MDCTextInputController <NSObject, NSSecureCoding, NSCopying, MDCTextInputPositioningDelegate> |
To: | @protocol MDCTextInputController <NSObject, NSCopying, MDCTextInputPositioningDelegate> |
Component changes
AppBar
Breaking changes
Ink
Breaking changes
TextFields
Breaking changes
BottomAppBar
Changes
- Fix example (#4616) (Robert Moore)
BottomSheet
Changes
- Replacing typeof(self) by __typeof(self) (#4617) (Jérôme Lebel)
BottomNavigation
Breaking changes
FlexibleHeader
Changes
- Add behavior for enabling contextual safe area insets (#4596) (featherless)
- Fix iPhone X status bar bug when changing orientation. (#4592) (featherless)
- Fix inconsistent shifting behavior when deceleration ends. (#4622) (featherless)
- Improved height consistency when horizontally paging. (#4601) (featherless)
- Remove Swift typical use example. (#4595) (featherless)
v58.0.0
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.
Breaking changes
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.
New features
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.
API changes
BottomNavigation
MDCBottomNavigationBar
new property: itemsContentInsets
in MDCBottomNavigationBar
new property: itemsContentHorizontalMargin
in MDCBottomNavigationBar
new property: itemsContentVerticalMargin
in MDCBottomNavigationBar
NavigationBar
MDCNavigationBar
removed property: useFlexibleTopBottomInsets
in MDCNavigationBar
Component changes
AppBar
Breaking changes
- Breaking: Mainline the YES behaviour for useFlexibleTopBottomInsets, and remove the already deprecated API. (#4570) (Ali Rabbani)
- Breaking: [FlexibleHeader] Remove NSCoding support. (#4554) (featherless)
- Breaking: [NavigationBar] Remove NSCoding support. (#4560) (featherless)
Changes
- Add docs on making navigationItems accessible with MDCAppBars (#4540) (Andrew Overton)
- [Catalog] Enable AppBar's isTopLayoutGuideAdjustmentEnabled in all examples. (#4537) (featherless)
Ink
Changes
- Make example accessible. (#4506) (Cody Weaver)
Buttons
Breaking changes
- Breaking: Remove NSCoding support. (#4565) (featherless)
Changes
- Disable FAB animation for VoiceOver (#4535) (Robert Moore)
- Fix button README (#4547) (Cody Weaver)
- Make accessibility docs match other components (#4501) (Cody Weaver)
- Removed internal links from docs. (#4559) (Randall Li)
- [Catalog] Enable AppBar's isTopLayoutGuideAdjustmentEnabled in all examples. (#4537) (featherless)
ButtonBar
Breaking changes
- Breaking: Remove NSCoding support. (#4553) (featherless)
TextFields
Changes
- Add accessibility docs for MDCTextField (#4498) (Andrew Overton)
- Fix clear button render scale (#4539) (Robert Moore)
Chips
Breaking changes
- Breaking: Remove NSCoding support. (#4549) (featherless)
Changes
- Add accessibilityHint to clear button in chips example (#4504) (Andrew Overton)
Cards
Breaking changes
- Breaking: Remove NSCoding support. (#4548) (featherless)
Changes
- Add accessibility documentation (#4454) (Galia Kaufman)
Slider
Changes
- Add a11y doc (#4536) (Cody Weaver)
- Support custom increment and decrement levels (#4534) (Cody Weaver)
NavigationBar
Breaking changes
- Breaking: Remove NSCoding support. (#4560) (featherless)
Changes
- Mainline the YES behaviour for useFlexibleTopBottomInsets, and remove the already deprecated API. (#4570) (Ali Rabbani)
ShadowLayer
Breaking changes
ActivityIndicator
Changes
- Change override of AccessibilityLabel with setting it to a default. (#4564) (Randall Li)
- Removed outdated comment. (#4561) (featherless)
BottomSheet
Changes
- Inform delegate of accessibility escape dismissal (#4571) (Andrew Overton)
- [Catalog] Enable AppBar's isTopLayoutGuideAdjustmentEnabled in all examples. (#4537) (featherless)
Dialogs
Changes
- Update A11y docs (#4509) (ianegordon)
- make accessibilityPerformEscape honor MDCDialogPresentationController.dismissOnBackgroundTap (#4508) (Andrew Overton)
BottomNavigation
Changes
- Add a11y to README (#4497) (Cody Weaver)
- Give MDCBottomNavigationBar a TabBar accessibilityTrait (#4510) (Andrew Overton)
- Parameterize top padding and vertical margin (#4432) (John Detloff)
- Removed internal links from docs. (#4558) (Randall Li)
AnimationTiming
Changes
HeaderStackView
Breaking changes
- Breaking: Remove NSCoding support. (#4544) (featherless)
FlexibleHeader
Breaking changes
- Breaking: Update top layout behavior to match documentation. (#4577) (featherless)
- Breaking: Remove NSCoding support. (#4554) (featherless)
Changes
ProgressView
Changes
- Add accessibility docs for MDCProgressView (#4543) (Andrew Overton)
v57.0.0
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.
Breaking changes
TextFields
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.
New features
BottomSheet
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)
Cards
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
List
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
API changes
BottomSheet
MDCBottomSheetTransitionController(ScrimAccessibility)
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)
MDCBottomSheetController
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
MDCSheetState
new enum: MDCSheetState
with values MDCSheetStateExtended
, MDCSheetStatePreferred
, and MDCSheetStateClosed
MDCBottomSheetPresentationControllerDelegate
new method: -bottomSheetWillChangeState:sheetState:
in MDCBottomSheetPresentationControllerDelegate
MDCBottomSheetPresentationController
new property: scrimAccessibilityLabel
in MDCBottomSheetPresentationController
new property: isScrimAccessibilityElement
in MDCBottomSheetPresentationController
new property: scrimAccessibilityTraits
in MDCBottomSheetPresentationController
new property: scrimAccessibilityHint
in MDCBottomSheetPresentationController
Cards
MDCCardCollectionCell
new property: interactable
in MDCCardCollectionCell
MDCCard
new property: interactable
in MDCCard
List
New component.
TextFields
MDCTextInputControllerFullWidth
new property: backgroundColor
in MDCTextInputControllerFullWidth
new property: backgroundColorDefault
in MDCTextInputControllerFullWidth
MDCTextInputControllerBase
removed property: backgroundColor
in MDCTextInputControllerBase
MDCTextInputController
new property: textInputClearButtonTintColorDefault
in MDCTextInputController
new property: textInputClearButtonTintColor
in MDCTextInputController
removed property: backgroundColorDefault
in MDCTextInputController
removed property: backgroundColor
in MDCTextInputController
Typography
UIFont(MaterialSimpleEquality)
new method: -mdc_isSimplyEqual:
in UIFont(MaterialSimpleEquality)
new category: UIFont(MaterialSimpleEquality)
Component changes
Tabs
Changes
- Fix alerts in examples (#4480) (Robert Moore)
FeatureHighlight
Changes
- Add swift example (#4439) (Cody Weaver)
Buttons
Changes
- [Catalog] Fix VoiceOver ordering in Buttons demo (#4482) (Robert Moore)
TextFields
Changes
- Fix clearIcon drawing (#4450) (Robert Moore)
- Make MDCTextField accessibilityValue include only placeholder or [super accessibilityValue], not both (#4460) (Andrew Overton)
- Migrate textInputClearButtonTintColor to MDCTextInputController, tests (#4465) (Michelle Dudley)
- Support clear button tint color (#4449) (Robert Moore)
- [Typography] 3rd PR on font equality (#4435) (Will Larche)
- {BreakingChange} Remove unused
backgroundColor
property (#4452) (Robert Moore)
Chips
Changes
- Fix Choice demo (#4473) (Robert Moore)
- chips shape support fix + example (#4474) (Yarden Eitan)
Cards
Changes
- Added interactability toggle to Cards (#4404) (Yarden Eitan)
List
Changes
- [ListItems] Add Base Cell With Example (#4461) (Andrew Overton)
BottomSheet
Changes
- Dismiss BottomSheet with UIAccessibility (#4475) (Robert Moore)
- [Shapes] Added Shapes support for BottomSheet (#4486) (Yarden Eitan)
Typography
Changes
- 3rd PR on font equality (#4435) (Will Larche)
BottomNavigation
Changes
- AccessibilityValue and Selected icon support (#4444) (Cody Weaver)
- Test cases when we reset the bottom navigation items array (#4431) (Cody Weaver)
- [BottomNavigation, Math] Fix
BOOL
types (#4436) (Robert Moore)
FlexibleHeader
Changes
- Fix odd scrolling bugs in voiceover (#4485) (John Detloff)