Skip to content

Releases: material-components/material-components-ios

v93.3.0

01 Nov 19:31
Compare
Choose a tag to compare

This minor release adds two new APIs to FlexibleHeader for contexts involving multiple tracking
scroll views (such as tabbed interfaces).

New features

MDCFlexibleHeaderView has a new API,
allowShadowLayerFrameAnimationsWhenChangingTrackingScrollView, that can be used to enable shadow
layer frame animations when the header's height is animated after switching to a new tracking
scroll view. This flag is false by default, but will be enabled and then deleted in the future, so
please consider enabling it wherever you instantiate a flexible header or app bar.

MDCFlexibleHeaderView has a new animationDelegate API that can be used to react to the completion
of the animation that occurs when changing tracking scroll views.

Component changes

FlexibleHeader

v93.2.0

31 Oct 00:24
c39b082
Compare
Choose a tag to compare

In this minor release TextFields support multiline error/helper text, FeatureHighlight supports Dynamic Type, OverlayWindow supports iOS 13 UIWindow scene initializer API, along with a PageControl dot placement fix, and additional component testing.

New features

FeatureHighlight

You can now set adjustsFontForContentSizeCategory on MDCFeatureHighlightViewController to automatically update your scalable font when content size category changes.
Namely, when adjustsFontForContentSizeCategory is set to YES the title and body fonts will scale appropriately if given a scalable font.

OverlayWindow

MDCOverlayWindow now supports being initialized with initWithWindowScene: as part of the new UIWindow iOS 13 APIs.

TextFields

MDCTextField now supports multiline error and helper texts. To set this up you will need to change the number of lines and word wrapping of the label:

MDCTextField *textField = [[MDCTextField alloc] init];
textField.leadingUnderlineLabel.numberOfLines = 0;
textField.leadingUnderlineLabel.lineBreakMode = NSLineBreakByWordWrapping;

API changes

Component changes

Changes

Banner

Buttons

Cards

Chips

Dialogs

FeatureHighlight

FlexibleHeader

List

OverlayWindow

PageControl

ShadowLayer

TextFields

v93.1.1

28 Oct 14:00
Compare
Choose a tag to compare

This patch hotfix release addresses a bug in NavigationDrawer where the scrim is visible when the drawer's trackingScrollView is scrolled to the end of the content.

Changes

NavigationDrawer

v93.1.0

25 Oct 12:58
Compare
Choose a tag to compare

This minor hotfix release deprecates the buttonFont API of
MDCAlertController.

New deprecations

The buttonFont API on MDCAlertController is being deprecated and will soon
be removed. Clients should instead use buttonForAction: to access and theme
each button as desired.

Objective-C

for (MDCAlertAction *action in self.actions) {
  MDCButton *button = [self buttonForAction:action];
  // Perform button customization
}

API changes

Dialogs

MDCAlertController

modified property: buttonFont in MDCAlertController

Type of change: Deprecation message
From: ``
To: Please use buttonForAction: to set button properties.

modified property: buttonFont in MDCAlertController

Type of change: Deprecation
From: 0
To: 1

Changes

Dialogs

v93.0.0

23 Oct 20:24
Compare
Choose a tag to compare

This major release deletes MaskedTransition, fixes bugs in ActionSheet, and adds an API to Buttons related to fonts.

Breaking changes

MaskedTransition has been deleted.

Changes

ActionSheet

Buttons

Chips

Dialogs

Tabs

v92.5.0

21 Oct 16:00
Compare
Choose a tag to compare

This minor release prepares MDCButton for the deprecation and removal of its
titleFont:forState: APIs in a future release.

Changes

Buttons

v92.4.0

16 Oct 14:24
Compare
Choose a tag to compare

This minor release addresses issues with Dialogs in Dark Mode, adds delegate methods for Navigation Drawer, and makes Outlined Text Areas more configurable.

New deprecations

This minor release deprecates Chips+ChipThemer and MDCChipViewFontThemer.

New features

MDCTextInputControllerOutlinedTextArea now allows users to specify minimumLines and expandsOnOverflow.

Objective -C

MDCTextInputControllerOutlinedTextArea *textInputControllerOutlinedTextArea =
    [[MDCTextInputControllerOutlinedTextArea alloc] initWithTextInput:self.textField];
textInputControllerOutlinedTextArea.minimumLines = 1;
textInputControllerOutlinedTextArea.expandsOnOverflow = YES;

Swift

let textInputControllerOutlinedTextArea =
    MDCTextInputControllerOutlinedTextArea(textInput: textField)
textInputControllerOutlinedTextArea.minimumLines = 1
textInputControllerOutlinedTextArea.expandsOnOverflow = true

MDCBottomDrawerPresentationControllerDelegate has new methods that allow clients to respond to animation lifecycle events and touches to the scrim.

Touch events set to delegate

Touch events are propagated to delegate to allow clients to interpret touches in the scrim area.

Objective-C

navigationDrawer.dismissOnBackgroundTap = NO;
navigationDrawer.shouldForwardTouchEvents = YES;
...
- (void)touchesBegan:(NSSet<UITouch *> *)touches withEvent:(UIEvent *)event {
}
- (void)touchesEnded:(NSSet<UITouch *> *)touches withEvent:(UIEvent *)event {
}

Swift

navigationDrawer.dismissOnBackgroundTap = false
navigationDrawer.shouldForwardTouchEvents = true
...
override public func touchesBegan(_ touches: Set<UITouch>, with event: UIEvent?) {
}
public override func touchesEnded(_ touches: Set<UITouch>, with event: UIEvent?) {
}

Animation events sent to delegate

The animation lifecycle events are forwarded to the delegate so that clients can respond to them.

Objective-C

- (void)bottomDrawerControllerWillTransitionOpen:(nonnull MDCBottomDrawerViewController *)controller
                                 withCoordinator:
                                     (nullable id<UIViewControllerTransitionCoordinator>)
                                         transitionCoordinator
                                   targetYOffset:(CGFloat)targetYOffset {
}

- (void)bottomDrawerControllerDidEndOpenTransition:(MDCBottomDrawerViewController *)controller {
}

- (void)
    bottomDrawerControllerWillTransitionClosed:(nonnull MDCBottomDrawerViewController *)controller
                               withCoordinator:(nullable id<UIViewControllerTransitionCoordinator>)
                                                   transitionCoordinator
                                 targetYOffset:(CGFloat)targetYOffset {
}

- (void)bottomDrawerControllerDidEndCloseTransition:(MDCBottomDrawerViewController *)controller {
}

- (void)bottomDrawerControllerDidChangeTopYOffset:
            (nonnull MDCBottomDrawerViewController *)controller
                                          yOffset:(CGFloat)yOffset {
}

Swift

public func bottomDrawerControllerWillTransitionOpen(_ controller: MDCBottomDrawerViewController, with transitionCoordinator: UIViewControllerTransitionCoordinator?, targetYOffset:CGFloat) {
}

public func bottomDrawerControllerDidEndOpenTransition(_ controller: MDCBottomDrawerViewController) {
}

public func bottomDrawerControllerWillTransitionClosed(_ controller: MDCBottomDrawerViewController, with transitionCoordinator: UIViewControllerTransitionCoordinator?) {
}

public func bottomDrawerControllerDidEndCloseTransition(_ controller: MDCBottomDrawerViewController) {
}

public func bottomDrawerControllerDidChangeTopYOffset(_ controller: MDCBottomDrawerViewController, yOffset: CGFloat) {
}

Changes

BottomSheet

Chips

Dialogs

NavigationDrawer

TextFields

Typography

Multi-component changes

v92.3.1

09 Oct 14:30
Compare
Choose a tag to compare

This minor hotfix adds a missing podspec dependency to TextFields+ContainedInputView extension.

Component changes

TextFields

v92.3.0

08 Oct 20:42
Compare
Choose a tag to compare

This minor release introduces new color properties to TextFields and removes max size constraints on ActivityIndicator.

New features

MDCTextInputControllerBase now allows setting the input field's border in the resting state using borderStrokeColor:

MDCTextField *textField = [[MDCTextField alloc] init];
MDCTextInputControllerOutlined *controller =
  [[MDCTextInputControllerOutlined alloc] initWithTextInput:textField];
controller.borderStrokeColor = UIColor.redColor;

MDCTextInputControllerFloatingPlaceholder now allows setting the error color of the border of the input field while being in edit mode using floatingPlaceholderErrorActiveColor:

let textFieldFilled = MDCTextField()
let textFieldControllerFilled = MDCTextInputControllerFilled(textInput: textFieldFilled)
textFieldControllerFilled.floatingPlaceholderErrorActiveColor = .red

Component changes

Changes

ActivityIndicator

Tabs

TextFields

Multi-component changes

v92.2.0

07 Oct 16:07
Compare
Choose a tag to compare

This minor hotfix release adds a new accessory view feature to MDCAlertController.

New features

MDCAlertController has a new accessoryView property. This property can be used to add custom views
to the alert controller. Example usage:

let alert = MDCAlertController(title: "This is a title", message: "This is a message")
let textField = UITextField()
textField.placeholder = "This is a text field"
alert.accessoryView = textField

Changes

Dialogs