[TextControls] Replace UIGraphicsBeginImageContext with UIGraphicsImageRenderer in MDCTextControlGradientManager #10288
Add this suggestion to a batch that can be applied as a single commit.
This suggestion is invalid because no changes were made to the code.
Suggestions cannot be applied while the pull request is closed.
Suggestions cannot be applied while viewing a subset of changes.
Only one suggestion per line can be applied in a batch.
Add this suggestion to a batch that can be applied as a single commit.
Applying suggestions on deleted lines is not supported.
You must change the existing code in this line in order to create a valid suggestion.
Outdated suggestions cannot be applied.
This suggestion has been applied or marked resolved.
Suggestions cannot be applied from pending reviews.
Suggestions cannot be applied on multi-line comments.
Suggestions cannot be applied while the pull request is queued to merge.
Suggestion cannot be applied right now. Please check back later.
Overview
This PR updates the
createImageWithLayer
method inMDCTextControlGradientManager.m
to useUIGraphicsImageRenderer
instead of the deprecatedUIGraphicsBeginImageContext
API for rendering images from aCALayer
. The change modernizes the codebase, improves performance, and aligns with Apple's recommended practices for iOS image rendering.Changes
UIGraphicsBeginImageContext
and related functions withUIGraphicsImageRenderer
inMDCTextControlGradientManager.m
(method:createImageWithLayer
).CALayer
) and output (UIImage
).TextControls
component behavior.Why
UIGraphicsBeginImageContext
is deprecated in iOS 17+ and generates warnings in modern Xcode versions.UIGraphicsImageRenderer
is the recommended API, offering better performance and support for modern iOS features (e.g., wide color, trait collections).Testing
Catalog
example app (Material Catalog). Confirmed that gradient images rendered forTextControls
components are identical to the previous implementation.createImageWithLayer
inMDCTextControlGradientManager
. Manual testing was sufficient to validate the change.TextControls
components pass, ensuring no visual regressions.Issues