0

这很容易,但我不能让它工作:我需要 panresponder 从坐标开始(例如)x100 y25 而不是 0, 0(默认)

class MyPanResponder extends Component {
    pan = new Animated.ValueXY();
    panResponder = PanResponder.create({
        onMoveShouldSetPanResponder: () => true,
        onPanResponderGrant: (event, gestureState) => {
            this.pan.setOffset({
                x: this.pan.x._value,
                y: this.pan.y._value
            });
        },
        onPanResponderMove: Animated.event([
            null,
            { dx: this.pan.x, dy: this.pan.y }
        ]),
        onPanResponderRelease: () => {
            this.pan.flattenOffset();
        }
    });
    constructor(props) {
        super(props);
        this.state = {
            currentPanValue: { x: 0, y: 0 },

        };
    }

    render() {
        return (
            <View style={{ position: "absolute", width: "100%", height: "100%", alignItems: "center", justifyContent: "center" }}>
                <Animated.View
                    style={{
                        transform: [{ translateX: this.pan.x }, { translateY: this.pan.y }]
                    }}
                    {...this.panResponder.panHandlers}
                >
                    <Image
                        style={{ width: 150, height: 150, resizeMode: "cover" }}
                        source={{
                            uri: 'https://cataas.com/cat',
                        }}
                    />
                </Animated.View>
            </View>
        );
    }
}

这段代码呈现了一个panresponder,我可以移动它,一切都很好,但初始位置,我无法改变

4

0 回答 0