react-Native:iOS上的背景图像无法覆盖整个屏幕

Posted

技术标签:

【中文标题】react-Native:iOS上的背景图像无法覆盖整个屏幕【英文标题】:react-Native: background image on iOS has cannot cover all the screen 【发布时间】:2019-11-03 10:00:08 【问题描述】:

尽管尝试了不同的样式选项,但背景图像并未填满 ios 设备上的整个屏幕。而在 android 设备上,它看起来不错,并填满了所有背景空间。

我在 iPhone6 设备上遇到了同样的问题,在 iPhone 11 模拟器上也是如此。左右似乎有背景图像没有覆盖的白色边缘,但这不会发生在 android 设备上。

这是iOS和android模拟器并排的图片,iOS在右边。

我尝试使用样式属性 resizeMode ,其值包括 'cover'、'stretch'、'contain' 等,但它们似乎都没有什么不同。这是代码:

import React from 'react';
import  Text, View, Platform, ImageBackground  from 'react-native';
import  Button  from 'native-base'

var myBackground = require('./assets/icons/landing.jpg')

export default function App() 
  return (
    <View style=styles.container>
      <ImageBackground
        source=myBackground
        style=styles.imageStyle
        >
        <View style=styles.viewStyle>
          <Text
            style=styles.titleStyle
          >Welcome to pokeSearch</Text>
          <Button
            block=true
            style=styles.buttonStyle
            onPress=() =>  
          >
            <Text style=styles.buttonText>Start Searching</Text>
          </Button>
        </View>
      </ImageBackground>


    </View>
  );


const styles = 
  container: 
    flex: 1,
    // marginTop: Platform.OS === "android" ? 20 : 0,
    justifyContent: 'center',
    alignItems: 'center'

  ,
  buttonOuterLayout: 
    flex: 1,
    flexDirection: 'column',
    justifyContent: 'center',
    alignItems: 'center',


  ,
  buttonLayout: 
    // marginTop: 10,
    // paddingRight: 10,
    // paddingLeft: 10

  ,
  viewStyle: 
    flex: 1,
    flexDirection: 'column',
    justifyContent: 'center',
    alignItems: 'center'
  ,
  titleStyle: 
    fontSize: 30,
    color: 'blue',
    alignItems: 'center'

  ,
  imageStyle: 
    // flex: 1,
    width: null,
    height: null,
    resizeMode: 'contain'

    // justifyContent: 'flex-end',
    // alignItems: 'center'
  ,

  buttonStyle: 
    margin: 10

  ,
  buttonText: 
    color: 'white'
  

我希望背景图像像在 android 上一样覆盖 iOS 上的背景。

【问题讨论】:

试用:width: '100%', height: '100%', flex: 1, resizeMode: 'cover'? 刚刚用 'contain' 试过了,它奏效了!不确定什么是最好的使用、包含或覆盖.. 完美 :) 我从这里获取了我的解决方案:***.com/a/50233429/2910520,所有功劳归他所有。尝试使用不同的设备并检查会发生什么 【参考方案1】:

解决方法是改变 backgroundImage 样式如下:

imageStyle: 
    flex: 1,
    width: '100%',
    height: '100%',
    resizeMode: 'cover'

所有功劳归于 matPag 和 https://***.com/a/50233429/2910520

【讨论】:

以上是关于react-Native:iOS上的背景图像无法覆盖整个屏幕的主要内容,如果未能解决你的问题,请参考以下文章

iOS 上的共享扩展无法打开我的 react-native 应用

在react-native中,我如何在ios和android的图像上添加水印

react-native IOS 发布方案上的 Travis 错误

React-native:如何在布局(视图)的背景中设置图像

如何在图像视图中添加背景图像以及我希望它显示在背景图像 ios 上的图像?

zIndex 在 IOS 的 react-native 中无法正常工作