react-native-macos/React/Views
Emilio 7a4753d76a tapping on iOS status bar should scroll inverted ScrollViews to their top (#27574)
Summary:
React Native ScrollViews are flipped upside down when the prop inverted is set to true. This is the root of a bug: tapping on the status bar in iOS should scroll the Flatlist up to the top but currently it does to the bottom.

The solution proposed is to detect natively if the ScrollView is inverted, on such case, prevent it from scrolling it to the beginning of the ScrollView (as a non-inverted ScrollView would do) and force a scroll to the end of it.

I've been careful enough not to force the scroll if the user explicitly selected not to do it or if it's happening in a nested ScrollView, as it is the default behaviour in iOS.

Fixes https://github.com/facebook/react-native/issues/21126

## Changelog

[iOS] [Fixed] - Inverted ScrollViews scroll to their bottom when the status bar is pressed
Pull Request resolved: https://github.com/facebook/react-native/pull/27574

Test Plan:
- on iOS, add a ScrollView and put enough content to overflow the screen size so it can be scrolled
- add the prop `inverted={true}` to the ScrollView
- go to the screen the Scrollview is in and press the status bar
- it should scroll to top (previously it scrolled to the bottom)

![v](https://user-images.githubusercontent.com/807710/71188640-a0ac6680-2281-11ea-91a7-d1e46aba8b14.gif)

Differential Revision: D19185270

Pulled By: hramos

fbshipit-source-id: 5445093ff38f4ba4082f1d883d8ed087e9565eaf
2019-12-19 15:29:54 -08:00
..
RefreshControl Fix spinner is not shown on beginRefreshingProgrammatically on IOS (#27397) 2019-12-06 12:06:44 -08:00
SafeAreaView Tidy up license headers [2/n] 2019-10-16 10:06:34 -07:00
ScrollView tapping on iOS status bar should scroll inverted ScrollViews to their top (#27574) 2019-12-19 15:29:54 -08:00
RCTActivityIndicatorView.h Tidy up license headers [2/n] 2019-10-16 10:06:34 -07:00
RCTActivityIndicatorView.m Tidy up license headers [2/n] 2019-10-16 10:06:34 -07:00
RCTActivityIndicatorViewManager.h Tidy up license headers [2/n] 2019-10-16 10:06:34 -07:00
RCTActivityIndicatorViewManager.m Tidy up license headers [2/n] 2019-10-16 10:06:34 -07:00
RCTAnimationType.h Tidy up license headers [2/n] 2019-10-16 10:06:34 -07:00
RCTAutoInsetsProtocol.h Tidy up license headers [2/n] 2019-10-16 10:06:34 -07:00
RCTBorderDrawing.h Tidy up license headers [2/n] 2019-10-16 10:06:34 -07:00
RCTBorderDrawing.m Tidy up license headers [2/n] 2019-10-16 10:06:34 -07:00
RCTBorderStyle.h Tidy up license headers [2/n] 2019-10-16 10:06:34 -07:00
RCTComponent.h iOS: attach rootTag to the native component instance for easy access 2019-11-16 00:13:48 -08:00
RCTComponentData.h iOS: attach rootTag to the native component instance for easy access 2019-11-16 00:13:48 -08:00
RCTComponentData.m iOS: attach rootTag to the native component instance for easy access 2019-11-16 00:13:48 -08:00
RCTConvert+CoreLocation.h Tidy up license headers [2/n] 2019-10-16 10:06:34 -07:00
RCTConvert+CoreLocation.m Tidy up license headers [2/n] 2019-10-16 10:06:34 -07:00
RCTConvert+Transform.h Tidy up license headers [2/n] 2019-10-16 10:06:34 -07:00
RCTConvert+Transform.m Tidy up license headers [2/n] 2019-10-16 10:06:34 -07:00
RCTDatePicker.h Tidy up license headers [2/n] 2019-10-16 10:06:34 -07:00
RCTDatePicker.m Tidy up license headers [2/n] 2019-10-16 10:06:34 -07:00
RCTDatePickerManager.h Tidy up license headers [2/n] 2019-10-16 10:06:34 -07:00
RCTDatePickerManager.m Tidy up license headers [2/n] 2019-10-16 10:06:34 -07:00
RCTFont.h Tidy up license headers [2/n] 2019-10-16 10:06:34 -07:00
RCTFont.mm Tidy up license headers [2/n] 2019-10-16 10:06:34 -07:00
RCTLayout.h Tidy up license headers [2/n] 2019-10-16 10:06:34 -07:00
RCTLayout.m Tidy up license headers [2/n] 2019-10-16 10:06:34 -07:00
RCTMaskedView.h Tidy up license headers [2/n] 2019-10-16 10:06:34 -07:00
RCTMaskedView.m Tidy up license headers [2/n] 2019-10-16 10:06:34 -07:00
RCTMaskedViewManager.h Tidy up license headers [2/n] 2019-10-16 10:06:34 -07:00
RCTMaskedViewManager.m Tidy up license headers [2/n] 2019-10-16 10:06:34 -07:00
RCTModalHostView.h Tidy up license headers [2/n] 2019-10-16 10:06:34 -07:00
RCTModalHostView.m Tidy up license headers [2/n] 2019-10-16 10:06:34 -07:00
RCTModalHostViewController.h Tidy up license headers [2/n] 2019-10-16 10:06:34 -07:00
RCTModalHostViewController.m Tidy up license headers [2/n] 2019-10-16 10:06:34 -07:00
RCTModalHostViewManager.h Tidy up license headers [2/n] 2019-10-16 10:06:34 -07:00
RCTModalHostViewManager.m Tidy up license headers [2/n] 2019-10-16 10:06:34 -07:00
RCTPicker.h Tidy up license headers [2/n] 2019-10-16 10:06:34 -07:00
RCTPicker.m Support for accessibility Label prop to the Picker component (#27342) 2019-12-17 16:48:17 -08:00
RCTPickerManager.h Tidy up license headers [2/n] 2019-10-16 10:06:34 -07:00
RCTPickerManager.m Support for accessibility Label prop to the Picker component (#27342) 2019-12-17 16:48:17 -08:00
RCTPointerEvents.h Tidy up license headers [2/n] 2019-10-16 10:06:34 -07:00
RCTProgressViewManager.h Tidy up license headers [2/n] 2019-10-16 10:06:34 -07:00
RCTProgressViewManager.m Tidy up license headers [2/n] 2019-10-16 10:06:34 -07:00
RCTRootShadowView.h Tidy up license headers [2/n] 2019-10-16 10:06:34 -07:00
RCTRootShadowView.m Tidy up license headers [2/n] 2019-10-16 10:06:34 -07:00
RCTSegmentedControl.h Tidy up license headers [2/n] 2019-10-16 10:06:34 -07:00
RCTSegmentedControl.m Tidy up license headers [2/n] 2019-10-16 10:06:34 -07:00
RCTSegmentedControlManager.h Tidy up license headers [2/n] 2019-10-16 10:06:34 -07:00
RCTSegmentedControlManager.m Tidy up license headers [2/n] 2019-10-16 10:06:34 -07:00
RCTShadowView+Internal.h Tidy up license headers [2/n] 2019-10-16 10:06:34 -07:00
RCTShadowView+Internal.m Tidy up license headers [2/n] 2019-10-16 10:06:34 -07:00
RCTShadowView+Layout.h Tidy up license headers [2/n] 2019-10-16 10:06:34 -07:00
RCTShadowView+Layout.m Tidy up license headers [2/n] 2019-10-16 10:06:34 -07:00
RCTShadowView.h Tidy up license headers [2/n] 2019-10-16 10:06:34 -07:00
RCTShadowView.m iOS: attach rootTag to the native component instance for easy access 2019-11-16 00:13:48 -08:00
RCTSlider.h Tidy up license headers [2/n] 2019-10-16 10:06:34 -07:00
RCTSlider.m Tidy up license headers [2/n] 2019-10-16 10:06:34 -07:00
RCTSliderManager.h Tidy up license headers [2/n] 2019-10-16 10:06:34 -07:00
RCTSliderManager.m Tidy up license headers [2/n] 2019-10-16 10:06:34 -07:00
RCTSwitch.h Tidy up license headers [2/n] 2019-10-16 10:06:34 -07:00
RCTSwitch.m Tidy up license headers [2/n] 2019-10-16 10:06:34 -07:00
RCTSwitchManager.h Tidy up license headers [2/n] 2019-10-16 10:06:34 -07:00
RCTSwitchManager.m Tidy up license headers [2/n] 2019-10-16 10:06:34 -07:00
RCTTVView.h Tidy up license headers [2/n] 2019-10-16 10:06:34 -07:00
RCTTVView.m Tidy up license headers [2/n] 2019-10-16 10:06:34 -07:00
RCTTextDecorationLineType.h Tidy up license headers [2/n] 2019-10-16 10:06:34 -07:00
RCTView.h Tidy up license headers [2/n] 2019-10-16 10:06:34 -07:00
RCTView.m Make views tappable with screen reader 2019-11-19 07:54:16 -08:00
RCTViewManager.h Tidy up license headers [2/n] 2019-10-16 10:06:34 -07:00
RCTViewManager.m RN: Delete Apple TV Props 2019-11-01 08:49:26 -07:00
RCTWrapperViewController.h Tidy up license headers [2/n] 2019-10-16 10:06:34 -07:00
RCTWrapperViewController.m Tidy up license headers [2/n] 2019-10-16 10:06:34 -07:00
UIView+Private.h Tidy up license headers [2/n] 2019-10-16 10:06:34 -07:00
UIView+React.h Tidy up license headers [2/n] 2019-10-16 10:06:34 -07:00
UIView+React.m iOS: attach rootTag to the native component instance for easy access 2019-11-16 00:13:48 -08:00