TouchableOpacity onPress仅在iPhone 7上不会触发

时间:2017-10-03 03:33:46

标签: javascript ios iphone reactjs react-native

我有一个TouchableOpacity,当我按下TouchableOpacity时,它不会一致地触发onPress事件。它只会在发送垃圾邮件一段时间后触发。不透明度更改,onPressIn和onPressOut函数工作。 onLongPress也不起作用。这似乎只发生在iPhone 7上。在iPhone 6上它可以正常工作。

以下是代码:

const myStyles = StyleSheet.create({
  threshold: {
    resizeMode: 'contain',
    height: undefined,
    aspectRatio: 0.757,
    position: 'absolute',
    bottom: 0
  }
});

class ThresholdIcon extends Component {
  constructor(props) {
    super(props);
    this.onThresholdPress = this.onThresholdPress.bind(this);
    this.state = ({
      width: new Animated.Value(12),
      bot: new Animated.Value(0),
    });
  }
  onThresholdPress() {
    const { onPress, type } = this.props;
    onPress(type);
  }
  render() {
    const { type, onPress } = this.props;

    const threshold = getThresholdPercent(type);
    const img = getImg(type);

    return (<Animated.View
      style={{
        bottom: this.state.bot.interpolate({
          inputRange: [0, 1],
          outputRange: ['-80%', '-55%']
        })
      }}
    >
      <TouchableOpacity
        onPress={this.onThresholdPress}
      >
        <Animated.Image
          style={[myStyles.threshold, {
            left: this.state.width.interpolate({
              inputRange: [12, 20],
              outputRange: ['10%', '20%']
            }),
            width: this.state.width.interpolate({
              inputRange: [12, 20],
              outputRange: ['12%', '20%']
            })
          }]}
          source={img}
        />
      </TouchableOpacity>
    </Animated.View>);
  }
}

我尝试将zIndex添加到最外面的Animated.View并删除所有动画。两者都没有奏效。我可以使用onPressOut而不是onPress吗?这基本上不是一回事吗?

0 个答案:

没有答案