RN

React-Native 学习Animated -1

2017-07-06  本文已影响0人  煎包小混沌
//Animated.timing实现view的位置移动
import React, { Component } from 'react';
import { AppRegistry, StyleSheet, Animated, TouchableHighlight, View, Text} from 'react-native';

var xx = 0;
class RnAnimatedView extends Component {
    constructor(props) {
        super(props);
        this.state= {
            left: new Animated.Value(0),
        }
    }
    render() {
        let animView = (
            //这里需要使用transform, rotateX被包含在transform的属性中。
            //interpolate很特殊,可以插入一些参数
            <Animated.View style={[{marginTop: 20, backgroundColor: '#ff00ff'}, {left: this.state.left.interpolate({
                //inputRange和outputRange定义了旋转的范围,可以调整参数看看两者有什么联系
                inputRange: [0, 1],
                outputRange: [0, 200],
            })}]}>
                <Text>我要开始移动了</Text>
            </Animated.View>
        );
        return(
            <View style={{flex: 1, alignItems: 'center', justifyContent: 'center'}}>
                <TouchableHighlight onPress={this.animation}>
                    <Text>点我开始动画</Text>
                </TouchableHighlight>
                {animView}
            </View>
        )

    }
    animation= () => {
        xx = xx === 0 ? 1 : 0;
        let timing = Animated.timing;
        timing(this.state.left, {
            toValue: xx,
            duration: 1000,
        }).start();
    }
}
AppRegistry.registerComponent('RnAnimatedView', () => RnAnimatedView);
Untitled3.gif
上一篇下一篇

猜你喜欢

热点阅读