mirror of
https://github.com/zhigang1992/react-native.git
synced 2026-01-12 22:50:10 +08:00
Summary: Not super clean, but not terrible. Unfortunately this still relies on the old Paper UIManager calling delegate methods to flush the operations queues. This will work for Marketplace You since Paper will be active, but we need to fix this, along with Animated Events which don't work at all yet. Random aside: it seems like taps are less responsive in fabric vs. paper, at least on iOS. There is a sporadic delay between the touches event coming in nativly to the JS callback invoking the native module function to start the animation - this will need some debugging. Reviewed By: shergin Differential Revision: D14143331 fbshipit-source-id: 63a17eaafa1217d77a532a2716d9f886a96fae59
87 lines
2.8 KiB
Objective-C
87 lines
2.8 KiB
Objective-C
/**
|
|
* 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 <Foundation/Foundation.h>
|
|
#import <React/RCTBridgeModule.h>
|
|
#import <React/RCTUIManager.h>
|
|
|
|
@protocol RCTValueAnimatedNodeObserver;
|
|
|
|
@interface RCTNativeAnimatedNodesManager : NSObject
|
|
|
|
- (nonnull instancetype)initWithBridge:(nonnull RCTBridge *)bridge;
|
|
|
|
- (void)updateAnimations;
|
|
|
|
- (void)stepAnimations:(nonnull CADisplayLink *)displaylink;
|
|
|
|
// graph
|
|
|
|
- (void)createAnimatedNode:(nonnull NSNumber *)tag
|
|
config:(NSDictionary<NSString *, id> *__nonnull)config;
|
|
|
|
- (void)connectAnimatedNodes:(nonnull NSNumber *)parentTag
|
|
childTag:(nonnull NSNumber *)childTag;
|
|
|
|
- (void)disconnectAnimatedNodes:(nonnull NSNumber *)parentTag
|
|
childTag:(nonnull NSNumber *)childTag;
|
|
|
|
- (void)connectAnimatedNodeToView:(nonnull NSNumber *)nodeTag
|
|
viewTag:(nonnull NSNumber *)viewTag
|
|
viewName:(nonnull NSString *)viewName;
|
|
|
|
- (void)restoreDefaultValues:(nonnull NSNumber *)nodeTag;
|
|
|
|
- (void)disconnectAnimatedNodeFromView:(nonnull NSNumber *)nodeTag
|
|
viewTag:(nonnull NSNumber *)viewTag;
|
|
|
|
- (void)dropAnimatedNode:(nonnull NSNumber *)tag;
|
|
|
|
// mutations
|
|
|
|
- (void)setAnimatedNodeValue:(nonnull NSNumber *)nodeTag
|
|
value:(nonnull NSNumber *)value;
|
|
|
|
- (void)setAnimatedNodeOffset:(nonnull NSNumber *)nodeTag
|
|
offset:(nonnull NSNumber *)offset;
|
|
|
|
- (void)flattenAnimatedNodeOffset:(nonnull NSNumber *)nodeTag;
|
|
|
|
- (void)extractAnimatedNodeOffset:(nonnull NSNumber *)nodeTag;
|
|
|
|
// drivers
|
|
|
|
- (void)startAnimatingNode:(nonnull NSNumber *)animationId
|
|
nodeTag:(nonnull NSNumber *)nodeTag
|
|
config:(NSDictionary<NSString *, id> *__nonnull)config
|
|
endCallback:(nullable RCTResponseSenderBlock)callBack;
|
|
|
|
- (void)stopAnimation:(nonnull NSNumber *)animationId;
|
|
|
|
- (void)stopAnimationLoop;
|
|
|
|
// events
|
|
|
|
- (void)addAnimatedEventToView:(nonnull NSNumber *)viewTag
|
|
eventName:(nonnull NSString *)eventName
|
|
eventMapping:(NSDictionary<NSString *, id> *__nonnull)eventMapping;
|
|
|
|
- (void)removeAnimatedEventFromView:(nonnull NSNumber *)viewTag
|
|
eventName:(nonnull NSString *)eventName
|
|
animatedNodeTag:(nonnull NSNumber *)animatedNodeTag;
|
|
|
|
- (void)handleAnimatedEvent:(nonnull id<RCTEvent>)event;
|
|
|
|
// listeners
|
|
|
|
- (void)startListeningToAnimatedNodeValue:(nonnull NSNumber *)tag
|
|
valueObserver:(nonnull id<RCTValueAnimatedNodeObserver>)valueObserver;
|
|
|
|
- (void)stopListeningToAnimatedNodeValue:(nonnull NSNumber *)tag;
|
|
|
|
@end
|