我有一个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吗?这基本上不是一回事吗?