Releases: material-components/material-components-ios
v79.2.0
79.2.0
This minor release introduces a bug fix and new API to Flexible Header, Beta Theming Extensions for
App Bar and Text Fields, and additional component snapshot tests.
New features
MDCFlexibleHeaderView has a new API that can be called from UIScrollViewDelegates to notify it of
updated adjusted content inset values.
func scrollViewDidChangeAdjustedContentInset(_ scrollView: UIScrollView) {
if #available(iOS 11.0, *) {
self.appBarViewController.headerView.trackingScrollDidChangeAdjustedContentInset(scrollView)
}
}
- (void)scrollViewDidChangeAdjustedContentInset:(UIScrollView *)scrollView {
if (@available(iOS 11.0, *)) {
[self.appBarViewController.headerView
trackingScrollViewDidChangeAdjustedContentInset:scrollView];
}
}
API changes
AppBar+MaterialTheming
New extension.
FlexibleHeader
MDCFlexibleHeaderView
new method: -trackingScrollViewDidChangeAdjustedContentInset:
in MDCFlexibleHeaderView
MDCFlexibleHeaderView()
new category: MDCFlexibleHeaderView()
removed category: MDCFlexibleHeaderView()
modified property: contentView
in MDCFlexibleHeaderView()
Type of change: | parent.usr |
---|---|
From: | c:objc(ext)MDCFlexibleHeaderView@MDCFlexibleHeaderView.h@14987 |
To: | c:objc(ext)MDCFlexibleHeaderView@MDCFlexibleHeaderView.h@15448 |
TextFields+Theming
New extension.
Changes
ActionSheet
- Add basic Snapshot tests. (#6917) (Robert Moore)
AppBar
- Add theming extension for MDCAppBarViewController (#6903) (Robert Moore)
BottomNavigation
- Fix image updates in ItemView (#6847) (Robert Moore)
- More snapshots for item icons. (#6855) (Robert Moore)
- Restore examples titles. (#6869) (Robert Moore)
- Snapshot test for selection bug (#6843) (Robert Moore)
- Split alignment snapshot tests. (#6856) (Robert Moore)
- Use new test icons. (#6898) (Robert Moore)
FlexibleHeader
- update contentInset when tracked view's adjustedContentInset is changed. (#6868) (Wenyu Zhang)
- refactor internal helper methods (#6862) (Wenyu Zhang)
Ink
- Add basic snapshot tests. (#6920) (Robert Moore)
ShadowElevations
- Add basic snapshot tests. (#6829) (Robert Moore)
ShadowLayer
- Add basic Snapshot tests. (#6921) (Robert Moore)
TextFields
private/Snapshot
- Fix test image scale and clipping. (#6899) (Robert Moore)
- Adding 4 more test image styles. (#6897) (Robert Moore)
Multi-component changes
- Include snapshot tests in examples in Podspec (#6895) (Wenyu Zhang)
- Removing nil-coalescing operators per issue #6827 (#6859) (Joe Aguilar)
- Revert "[Typography] Dynamic Type 2.0 (#6733)" (#6848) (ianegordon)
v79.1.1
This patch release fixes a bug in BottomNavigation where the icons were not showing up correctly.
Bugs closed in this release
API changes
Component changes
BottomNavigation
- Fix image updates in ItemView (#6847) (Robert Moore)
- More snapshots for item icons. (#6855) (Robert Moore)
- Snapshot test for selection bug (#6843) (Robert Moore)
v79.1.0
This minor release increases our snapshot testing coverage and introduces a migration flag for
including UIAccessibilityTraitButton
in MDCButton's accessibilityTraits.
New features
It is now possible to set accessibilityTraits
on MDCButton to a custom value that
does not include UIAccessibilityTraitButton
. To enable this new behavior you must first set
accessibilityTraitsIncludesButton = NO. This flag will eventually default to NO and then be
deprecated/deleted.
API changes
Buttons
MDCButton
new property: accessibilityTraitsIncludesButton
in MDCButton
Changes
ActionSheet
- Fixes broken action sheet tests. (#6743) (Robert Moore)
ActivityIndicator
- Add basic Snapshot tests (#6826) (Robert Moore)
BottomNavigation
- Clean up internal constants (#6834) (Robert Moore)
- Examples clean-up. (#6718) (Robert Moore)
- Prevents the client from setting the navigation items directly when using the bottom navigation bar controller. (#6773) (Eric Lee)
Buttons
- Allow setting
accessibilityTraits
. (#6766) (Robert Moore)
Collections
List
- Add basic snapshot tests. (#6822) (Robert Moore)
NavigationBar
- Add basic Snapshot tests. (#6821) (Robert Moore)
PageControl
- Add basic Snapshot tests. (#6823) (Robert Moore)
ProgressView
- Add basic Snapshot tests. (#6825) (Robert Moore)
Ripple
- Added a fix for the ripple sometimes blinking when ending animation (#6792) (Yarden Eitan)
- update docs (#6772) (Yarden Eitan)
Snackbar
- Add basic Snapshot tests. (#6824) (Robert Moore)
- Make initialization threadsafe. (#6768) (Robert Moore)
Tabs
- Add basic Snapshot tests. (#6801) (Robert Moore)
- Fix badge text truncation bug in MDCItemBarCell (#6786) (Andrew Overton)
Typography
- Add basic Snapshot tests. (#6828) (Robert Moore)
Multi-component changes
- Dynamic Type 2.0 (#6733) (ianegordon)
- Enable -Wunguarded-availability. (#6776) (featherless)
- Revert "[Typography] Dynamic Type 2.0 (#6733)" (#6848) (ianegordon)
- {Tests} Fix font comparison in Objective-C. (#6789) (Robert Moore)
v79.0.1
This patch release removes NS_REQUIRES_SUPER
from several MDCCollectionViewController APIs, removing the requirement to call super.
API changes
Collections
MDCCollectionViewController
Type of change: | Declaration |
---|---|
From: | - (void)collectionView:(nonnull UICollectionView *)collectionView didHighlightItemAtIndexPath:(nonnull NSIndexPath *)indexPath NS_REQUIRES_SUPER; |
To: | - (void)collectionView:(nonnull UICollectionView *)collectionView didHighlightItemAtIndexPath:(nonnull NSIndexPath *)indexPath; |
Component changes
Collections
v79.0.0
This major release introduces breaking changes for Swift code that makes use of the MDCContainerScheme and MDCContainerScheming types. It also includes breaking changes for Shapes header files and completes the graduation of Shapes to a production-ready state.
Breaking changes
MDCContainerScheming's and MDCContainerScheme's colorScheme and typographyScheme are now both nonnull. This change will require changes in Swift code that make use of these APIs.
All Shapes headers have been renamed, dropping their New
suffix where applicable.
New features
BottomNavigation
BottomNavigation has two new properties: sizeThatFitsIncludesSafeArea
and barItemsBottomAnchor
.
See components/BottomNavigation/README.md for more details on the sizeThatFitsIncludesSafeArea
property.
barItemsBottomAnchor
allows anchoring the Bottom Navigation bar to the safe area layout guide. This API is available on iOS 9.0 and above. Example usage:
if (@available(iOS 11.0, *)) {
[navigationBar.barItemsBottomAnchor
constraintEqualToAnchor:view.safeAreaLayoutGuide.bottomAnchor]
.active = YES;
}
FlexibleHeader
MDCFlexibleHeaderViewController
introduces a new safeAreaDelegate
that can be used to change which view controller is used when extracting top safe area insets.
API changes
BottomNavigation
MDCBottomNavigationBar
new property: sizeThatFitsIncludesSafeArea
in MDCBottomNavigationBar
new property: barItemsBottomAnchor
in MDCBottomNavigationBar
FlexibleHeader
MDCFlexibleHeaderSafeAreaDelegate
new method: -flexibleHeaderViewControllerTopSafeAreaInsetViewController:
in MDCFlexibleHeaderSafeAreaDelegate
new protocol: MDCFlexibleHeaderSafeAreaDelegate
MDCFlexibleHeaderViewController
new property: safeAreaDelegate
in MDCFlexibleHeaderViewController
ContainerScheme
MDCContainerScheming
modified property: colorScheme
in MDCContainerScheming
Type of change: | Swift declaration |
---|---|
From: | var colorScheme: Any? { get } |
To: | var colorScheme: Any { get } |
modified property: colorScheme
in MDCContainerScheming
Type of change: | Declaration |
---|---|
From: | @property (readonly, nonatomic, nullable) id colorScheme; |
To: | @property (readonly, nonatomic, nonnull) id colorScheme; |
modified property: typographyScheme
in MDCContainerScheming
Type of change: | Swift declaration |
---|---|
From: | var typographyScheme: Any? { get } |
To: | var typographyScheme: Any { get } |
modified property: typographyScheme
in MDCContainerScheming
Type of change: | Declaration |
---|---|
From: | @property (readonly, nonatomic, nullable) id typographyScheme; |
To: | @property (readonly, nonatomic, nonnull) id typographyScheme; |
MDCContainerScheme
modified property: colorScheme
in MDCContainerScheme
Type of change: | Swift declaration |
---|---|
From: | var colorScheme: UnsafeMutablePointer<Int32>? { get set } |
To: | var colorScheme: UnsafeMutablePointer<Int32> { get set } |
modified property: colorScheme
in MDCContainerScheme
Type of change: | Declaration |
---|---|
From: | @property(nonatomic, nullable, readwrite) MDCSemanticColorScheme *colorScheme |
To: | @property (assign, readwrite, nonatomic, nonnull) int *colorScheme; |
modified property: shapeScheme
in MDCContainerScheme
Type of change: | Declaration |
---|---|
From: | @property(nonatomic, nullable, readwrite) MDCShapeScheme *shapeScheme |
To: | @property (assign, readwrite, nonatomic, nullable) int *shapeScheme; |
modified property: typographyScheme
in MDCContainerScheme
Type of change: | Swift declaration |
---|---|
From: | var typographyScheme: UnsafeMutablePointer<Int32>? { get set } |
To: | var typographyScheme: UnsafeMutablePointer<Int32> { get set } |
modified property: typographyScheme
in MDCContainerScheme
Type of change: | Declaration |
---|---|
From: | @property(nonatomic, nullable, readwrite) MDCTypographyScheme *typographyScheme |
To: | @property (assign, readwrite, nonatomic, nonnull) int *typographyScheme; |
Component changes
Changes
BottomAppBar
- hide swift example from Catalog. (#6725) (Wenyu Zhang)
BottomNavigation
- Make Controller available on iOS 8. (#6719) (Robert Moore)
- Remove deprecation notice from sizeThatFitsIncludesSafeArea (#6727) (featherless)
- sizeThatFits: ignores safe area (#6717) (Robert Moore)
Dialogs
- Fix presented corner radius in custom view controllers (#6696) (Galia Kaufman)
FlexibleHeader
- FlexibleHeader changes (#6748) (Andrew Overton)
NavigationDrawer
- remove beta references from navigation drawer (#6742) (Yarden Eitan)
PageControl
Multi-component changes
- Add autolayout support (#6612) (Robert Moore)
- Fix colorScheme and typographyScheme to be nonnull. (#6699) (Cody Weaver)
- Move shapes from components/private to components/ - Part 3 (last part) (#6734) (Yarden Eitan)
- Slight changes to Cards targets + rewrite rules (#6749) (Andrew Overton)
- Support titlePositionAdjustment (#6721) (Robert Moore)
- updated jazzy yaml files to include framework root (#6750) (Yarden Eitan)
v78.0.1
In this patch release we have provided a ChipTextField example along with some Beta theming bug fixes.
Changes
ActionSheet
- Removing theming extensions dependency on themers (#6654) (Cody Weaver)
- Remove Beta test from Ready component (#6677) (Cody Weaver)
Dialogs
- Fix button font in Theming Extension (#6638) (Robert Moore)
Ripple
- Add Ripple snapshot test target to BUILD file (#6698) (Andrew Overton)
Multi-component changes
v78.0.0
This major release promotes the Shape libraries from private to ready, as well as promoting Action Sheet to ready by migrating it from the MaterialComponentsBeta podspec to the MaterialComponents main podspec. Lastly, we've increased our snapshot test coverage across multiple components.
Breaking changes
Moving both Shape libraries, Shapes and ShapeLibrary, from components/private/ to components/ is a breaking change. Clients need to migrate over and update their imports to point to the new location of the Shape libraries.
API changes
ActionSheet
New component - promoted to Ready.
ShapeLibrary
New component - Migrated to components/ from components/private.
Shapes
New component - Migrated to components/ from components/private.
Component changes
Multi-component breaking changes
Changes
ActionSheet
- Promote to Ready (#6613) (Cody Weaver)
BottomAppBar
- Fix FAB location when RTL changes. (#6644) (Robert Moore)
- Add basic snapshot tests. (#6643) (Robert Moore)
ButtonBar
- Add basic snapshot tests. (#6662) (Robert Moore)
Buttons
- Add states snapshot tests. (#6639) (Robert Moore)
Cards
Dialogs
- add an example for custom dialog view controller themed by theming extension (#6601) (Wenyu Zhang)
- Add snapshot tests to MDCAlertController (#6641) (Robert Moore)
NavigationDrawer
- Expose the a11y identifier so it can be reached for testing purposes. (#6659) (Yarden Eitan)
- add a11y identifier for the nav drawer scrollview (#6629) (Yarden Eitan)
Ripple
Shapes
- shape path nil check (#6616) (Yarden Eitan)
Slider
- Add basic snapshot tests. (#6640) (Robert Moore)
TextFields
- Updates to SimpleTextFIeld and InputChipView prototype (#6647) (Andrew Overton)
Multi-component changes
v77.0.0
77.0.0
In this release we made improvements to BottomNavigationBar and landed stateful ripple in the ripple (beta) component.
Breaking changes
BottomNavigationBar
Removed a deprecated API:
@property(nonatomic, assign) UIEdgeInsets itemsContentInsets
New features
BottomNavigationBar
Blur
BottomNavigation can use blur in its background when not fully opaque
self.bottomNavBar.backgroundBlurEnabled = YES;
Long item titles
We automatically truncate titles that go out of bounds but added a flag to allow some clients to still overflow.
self.navigationBar.truncatesLongTitles = NO;
Stateful Ripple
We added this new component that simplifies the intersection of states and ripples.
You can set the state of the ripple like so:
statefulRippleView.isRippleHighlighted = true
...
statefulRippleView.isSelected = true
API changes
BottomNavigation
MDCBottomNavigationBar
new property: backgroundBlurEffectStyle
in MDCBottomNavigationBar
new property: backgroundBlurEnabled
in MDCBottomNavigationBar
new property: truncatesLongTitles
in MDCBottomNavigationBar
removed property: itemsContentInsets
in MDCBottomNavigationBar
Ripple
MDCRippleState
new enum: MDCRippleState
new enum value: MDCRippleStateSelected
in MDCRippleState
new enum value: MDCRippleStateDragged
in MDCRippleState
new enum value: MDCRippleStateHighlighted
in MDCRippleState
new enum value: MDCRippleStateNormal
in MDCRippleState
new typedef: MDCRippleState
MDCStatefulRippleView
new class: MDCStatefulRippleView
new method: -rippleColorForState:
in MDCStatefulRippleView
new property: selected
in MDCStatefulRippleView
new property: allowsSelection
in MDCStatefulRippleView
new property: rippleHighlighted
in MDCStatefulRippleView
new method: -setRippleColor:forState:
in MDCStatefulRippleView
new property: dragged
in MDCStatefulRippleView
Component changes
Changes
BottomNavigation
- Add blur example (#6589) (Robert Moore)
- Badge size grows with value (#6594) (Robert Moore)
- Add support for blur effect. (#6587) (Robert Moore)
- Delete
itemsContentInsets
API (#6584) (Robert Moore) - Extend ripple to bar bounds. (#6586) (Robert Moore)
- Fix "centered" alignment. (#6604) (Robert Moore)
- Fix Item View layout. (#6603) (Robert Moore)
- Fix badge position and font. (#6602) (Robert Moore)
Dialogs
- Remove internal usage of Themers. (#6572) (Robert Moore)
- add an example for themed button with emphasis (#6600) (Wenyu Zhang)
- hide non main examples in Catalog (#6576) (Wenyu Zhang)
Ripple
- [Ripple] Provides a Stateful Ripple implementation (#6591) (Yarden Eitan)
Multi-component changes
- Fix ripple layout issues with autolayout (#6588) (Yarden Eitan)
- {kokoro} Fix develop (#6575) (Robert Moore)
v76.1.2
76.1.2
Fix build tooling.
- Bumped version number to 76.1.2. (Ian Gordon)
- {kokoro} Fix develop (#6575) (Robert Moore)
v76.1.1
76.1.1
Fix Cocoapods validation failures.
76.1.0
Add additional snapshot tests and mark outdated theming API as deprecated.
New deprecations
The previous theming API is being deprecated in favor of MDCContainerScheme.
Bottom Navigation's itemsContentInsets in is being deprecated as it is no longer used internally.
Changes
AppBar
- Add animated tab switching example (#6447) (Brian Moore)
BottomAppBar
- Fix bottom app bar cut out (#6420) (Peter Friese)
BottomNavigation
- Add sizeThatFits: to Item View (#6559) (Robert Moore)
- Deprecate
itemsContentInsets
API (#6557) (Robert Moore) - Minor refactor of snapshot tests. (#6535) (Robert Moore)
- Suppress deprecation warning. (#6561) (Robert Moore)
- Use chrome_reader in example. (#6551) (Robert Moore)
- Add ItemView snapshot tests. (#6533) (Robert Moore)
- Add RTL snapshot tests. (#6539) (Robert Moore)
- Add snapshot tests for contentInsets (#6554) (Robert Moore)
- Simplify and improve badge view. (#6544) (Robert Moore)
- Vary badges in snapshot tests. (#6550) (Robert Moore)
Dialogs
- Deprecate Themers and AlertScheme. (#6564) (Robert Moore)
- Fix deprecation warnings. (#6567) (Robert Moore)
- Theming dialog actions doc (#6547) (Galia Kaufman)
Multi-component changes
- Add test image helper. (#6534) (Robert Moore)
- Completed audit of swift forced unwrapping in catalog (#6186) (Joe Aguilar)
- Improve snapshot tests. (#6543) (Robert Moore)