mirror of
https://github.com/status-im/react-native.git
synced 2025-02-25 07:35:25 +00:00
ScrollView: contentOffset
validatation now respects contentInset
Summary: > The property contentInset can change the maximum and minimum values of the content offset to allow scrolling outside of the scrollable area. Its type is UIEdgeInsets, which consists of 4 numbers: {top, left, bottom, right}. When you introduce an inset, you change the range of the content offset. For example, setting the content inset to have a value of 10 for its top value allows the content offset’s y value to reach -10. This introduces padding around the scrollable area. ( https://www.objc.io/issues/3-views/scroll-view/ ) See also: https://github.com/facebook/react-native/pull/15395 Reviewed By: mmmulani Differential Revision: D5607192 fbshipit-source-id: 1acd6a84e2bcfefc6e82861cfbdfe6247d0e4264
This commit is contained in:
parent
f0f25c57ca
commit
950c2b2a73
@ -315,15 +315,12 @@ RCT_NOT_IMPLEMENTED(- (instancetype)init)
|
||||
|
||||
UIEdgeInsets contentInset = self.contentInset;
|
||||
CGSize contentSize = self.contentSize;
|
||||
CGSize fullContentSize = CGSizeMake(
|
||||
contentSize.width + contentInset.left + contentInset.right,
|
||||
contentSize.height + contentInset.top + contentInset.bottom);
|
||||
|
||||
CGSize boundsSize = self.bounds.size;
|
||||
|
||||
self.contentOffset = CGPointMake(
|
||||
MAX(0, MIN(originalOffset.x, fullContentSize.width - boundsSize.width)),
|
||||
MAX(0, MIN(originalOffset.y, fullContentSize.height - boundsSize.height)));
|
||||
MAX(-contentInset.top, MIN(contentSize.width - boundsSize.width + contentInset.bottom, originalOffset.x)),
|
||||
MAX(-contentInset.left, MIN(contentSize.height - boundsSize.height + contentInset.right, originalOffset.y)));
|
||||
}
|
||||
|
||||
#if !TARGET_OS_TV
|
||||
|
Loading…
x
Reference in New Issue
Block a user