Skip to content

Commit ace81ff

Browse files
okwasniewskifacebook-github-bot
authored andcommitted
feat(iOS): remove usages of UIScreen mainScreen for Trait collections (#41214)
Summary: The goal of this PR is to migrate from deprecated `[UIScreen mainScreen]` and get the `displayScale` from currentTraitCollection. Both of those return the same values. ## Changelog: [IOS] [CHANGED] - retrieve screen scale from trait collection instead of UIScreen mainScreen Pull Request resolved: #41214 Test Plan: Go to Dimensions example and check that everything works as expected ### Before <img src="https://github.com/facebook/react-native/assets/52801365/53141e67-63e2-4c3b-818e-6a232aae8a5b" height="500" /> ### After <img src="https://github.com/facebook/react-native/assets/52801365/33728fce-0298-459c-b63e-a0b8ea34bde1" height="500" /> Reviewed By: NickGerleman Differential Revision: D50736794 Pulled By: javache fbshipit-source-id: d512cba1120204be95caf43ac9916f6597e2ccc8
1 parent 817fedb commit ace81ff

4 files changed

Lines changed: 5 additions & 5 deletions

File tree

packages/react-native/React/Base/RCTUtils.m

Lines changed: 2 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -302,14 +302,14 @@ static void RCTUnsafeExecuteOnMainQueueOnceSync(dispatch_once_t *onceToken, disp
302302
void RCTComputeScreenScale(void)
303303
{
304304
dispatch_once(&onceTokenScreenScale, ^{
305-
screenScale = [UIScreen mainScreen].scale;
305+
screenScale = [UITraitCollection currentTraitCollection].displayScale;
306306
});
307307
}
308308

309309
CGFloat RCTScreenScale(void)
310310
{
311311
RCTUnsafeExecuteOnMainQueueOnceSync(&onceTokenScreenScale, ^{
312-
screenScale = [UIScreen mainScreen].scale;
312+
screenScale = [UITraitCollection currentTraitCollection].displayScale;
313313
});
314314

315315
return screenScale;

packages/react-native/React/Fabric/Mounting/ComponentViews/View/RCTViewComponentView.mm

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -252,7 +252,7 @@ - (void)updateProps:(const Props::Shared &)props oldProps:(const Props::Shared &
252252
// `shouldRasterize`
253253
if (oldViewProps.shouldRasterize != newViewProps.shouldRasterize) {
254254
self.layer.shouldRasterize = newViewProps.shouldRasterize;
255-
self.layer.rasterizationScale = newViewProps.shouldRasterize ? [UIScreen mainScreen].scale : 1.0;
255+
self.layer.rasterizationScale = newViewProps.shouldRasterize ? self.traitCollection.displayScale : 1.0;
256256
}
257257

258258
// `pointerEvents`

packages/react-native/React/Views/RCTViewManager.m

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -213,7 +213,7 @@ - (RCTShadowView *)shadowView
213213
{
214214
view.layer.shouldRasterize = json ? [RCTConvert BOOL:json] : defaultView.layer.shouldRasterize;
215215
view.layer.rasterizationScale =
216-
view.layer.shouldRasterize ? [UIScreen mainScreen].scale : defaultView.layer.rasterizationScale;
216+
view.layer.shouldRasterize ? view.traitCollection.displayScale : defaultView.layer.rasterizationScale;
217217
}
218218

219219
RCT_REMAP_VIEW_PROPERTY(transform, reactTransform, CATransform3D)

packages/rn-tester/RCTTest/FBSnapshotTestCase/UIImage+Compare.m

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -42,7 +42,7 @@ - (BOOL)compareWithImage:(UIImage *)image
4242
CGImageGetColorSpace(image.CGImage),
4343
(CGBitmapInfo)kCGImageAlphaPremultipliedLast);
4444

45-
CGFloat scaleFactor = [UIScreen mainScreen].scale;
45+
CGFloat scaleFactor = [UITraitCollection currentTraitCollection].displayScale;
4646
CGContextScaleCTM(referenceImageContext, scaleFactor, scaleFactor);
4747
CGContextScaleCTM(imageContext, scaleFactor, scaleFactor);
4848

0 commit comments

Comments
 (0)