Q:

React Native: ScrollView with auto scroll

I would like to create a carousel that scrolls automatically until the user scrolls / touches the ScrollView itself.  
The auto-scrolling itself works fine with using scrollView.scrollTo but how could I detect if the user is interacting with the ScrollView?  I took a look at the onScroll event but this does not seem to distinct between a user generated event and an event that was generated by calling scrollTo. 
Also I'd like to know if it is possible to get the current scroll position from the ScrollView directly instead of reading it everytime from the onScroll event.  
I'm very thankful for any tips and suggestions. 

A:

By digging into ScrollView's source code you can notice a few undocumented callbacks that will help you achieve what you're after, namely onTouchStart and onTouchEnd.  These two callbacks are triggered only when user interacts with the ScrollView and not when you scroll programmatically. 
You will probably want to clear your auto-scroll interval on onTouchStart and restart it after a delay on onTouchEnd. 
Regarding your next question, the answer is no.  As far as I know, no getter is currently exposed to retrieve the current scroll position.  Therefore, you need to rely on the event passed to onScroll, retrieve event.nativeEvent.contentOffset['x' or 'y'], and store it in your component's state. 
Note that if you're doing some heavy animations that need to follow scroll position closely (e.g. animated header or parallax image), it would be a good idea to use the native driver for Animated.event.  You can learn more about it on React Native's blog.