12345678910111213141516171819202122232425262728293031 |
- /*
- * Copyright (c) Facebook, Inc. and its affiliates.
- *
- * This source code is licensed under the MIT license found in the
- * LICENSE file in the root directory of this source tree.
- */
- #import "RCTScrollContentShadowView.h"
- #import <yoga/Yoga.h>
- #import "RCTUtils.h"
- @implementation RCTScrollContentShadowView
- - (void)layoutWithMetrics:(RCTLayoutMetrics)layoutMetrics layoutContext:(RCTLayoutContext)layoutContext
- {
- if (layoutMetrics.layoutDirection == UIUserInterfaceLayoutDirectionRightToLeft) {
- // Motivation:
- // Yoga place `contentView` on the right side of `scrollView` when RTL layout is enforced.
- // That breaks everything; it is completely pointless to (re)position `contentView`
- // because it is `contentView`'s job. So, we work around it here.
- layoutContext.absolutePosition.x += layoutMetrics.frame.size.width;
- layoutMetrics.frame.origin.x = 0;
- }
- [super layoutWithMetrics:layoutMetrics layoutContext:layoutContext];
- }
- @end
|