Код отлично работает на Android. Но на IOS требуется два нажатия, чтобы сделать снимок. Самым странным было то, что я также добавил счетчик, чтобы посмотреть, зарегистрировался ли кран. Оно делает. Это начинает вращаться, но затем не делает снимок. Этот код работает безупречно на Android. TouchableOpacity, TouchableWithoutFeedback все отлично работает в других местах приложения. Так что я предполагаю, что это что-то с функцией takePictureAsync () на IOS. Это мой код ниже
Компонент камеры
<View style={{borderRadius:20,overflow:'hidden',height:'75%',width:'90%',elevation:10,marginTop:40}}>
<Camera ref={ref => { this.camera = ref }} style={{ height: '100%', width: '100%' }} type={this.state.type}>
</Camera>
</View>
<View style={{paddingTop:20}}>
<TouchableWithoutFeedback
style={{ alignSelf: 'center' }}
onPress={this.takePicture}>
<Image source={require('../../assets/camera.png')}
style={{ height: 60, width: 60 }} />
</TouchableWithoutFeedback>
</View>
Функция TakePicture
takePicture = async () => {
console.log("Pressed " + this.camera)
if (this.camera) {
console.log("Camera")
let photo = await this.camera.takePictureAsync();
this.setState({ imageUri: photo.uri })
}
}
Я пытался использовать все touchable, но в ios все еще не работает. Есть идеи. Спасибо