如何在 react-native IOS 中隐藏或删除阴影或底部边框

Posted

技术标签:

【中文标题】如何在 react-native IOS 中隐藏或删除阴影或底部边框【英文标题】:How to hide or remove shadow or bottomBorder in react-native IOS 【发布时间】:2017-12-14 06:10:19 【问题描述】:

我正在使用 react-native-router-flux v4.0 库在 react-native 中显示导航栏。

在这里我创建了一个自定义导航栏。

这是我的代码:

 _renderLeft() 
    return (
        <TouchableOpacity
            style=justifyContent: 'flex-start', alignItems: 'flex-start', alignSelf: 'flex-start'
        onPress=Actions.pop>
            <Image
                style=width: 24, height: 24
                resizeMode="contain"
                source=require('../../assets/images/ico_swipe.png')></Image>
        </TouchableOpacity>
    )


_renderMiddle() 
    return (
        <View style=[styles.navBarTitleView]>
            <Text style=[styles.navBarTitle]>this.props.title</Text>
        </View>
    )


_renderRight() 
    return (
        <TouchableOpacity
            style=justifyContent: 'flex-start', alignItems: 'flex-start', alignSelf: 'flex-start'
            onPress=Actions.pop>
            <Image
                style=width: 24, height: 24
                resizeMode="contain"
                source=require('../../assets/images/ico_home.png')></Image>
        </TouchableOpacity>
    )


render() 
    StatusBar.setBarStyle('light-content', true);
    return (
        <Header style=[styles.container]>
            <Left style=flex: 1>
                this._renderLeft()
            </Left>
            <Body style=flex: 3>
            <Title style=styles.navBarTitle>this.props.title</Title>
            </Body>
            <Right style=flex: 1>
                this._renderRight()
            </Right>
        </Header>
    )

这是我的风格:

const styles = StyleSheet.create(
container: 
    backgroundColor: AppColors.colorToolBar,
    elevation:0
,
navBarTitleView: 
    flex: 2,
,
navBarTitle: 
    fontSize: 20,
    fontFamily: AppStyles.fontFamilyMedium,
    color: AppColors.white,
    alignSelf: 'center'
,
menuItem:
    flex: 1, flexDirection: 'row', padding: 20
,
menuTitle:flex: 20, justifyContent: 'flex-start', alignItems: 'center',
    alignSelf: 'flex-start',
menuNextArrow:flex: 1

);

我在这里使用它:

<Stack key="Key"  hideTabBar>
                <Scene key="Key"
                       navBar=MyCustomNavBarLocation
                       component=myFileLocation
                       title="Round 1"
                       onLeft=Actions.pop
                       BackHandler=Actions.pop
                       back
                />
            </Stack>

我在 android 中得到了正确的结果,例如:

但在 Iphone 中它不正确:

如果您看到第二张图片,您会在导航栏和 TimeRemaining 视图之间看到一条灰色线,我想将其删除。

谢谢

【问题讨论】:

这里有同样的问题。我试过 shadowOpacity: 0 和 elevation:0 来去除阴影。但它不起作用。 【参考方案1】:

问题出在NativeBase 的标头组件中 底部边框线来自 Header 样式。所以根据here提出的问题,使用,

<Header noShadow=true hasTabs=true 

解决这个问题。

【讨论】:

【参考方案2】:

它迟到但更准确的答案, 在你的路由器中添加这一行来管理影子:

<Router
      navigationBarStyle= ...Platform.select(
        ios: 
          //  marginTop: StatusBar.currentHeight
          elevation: 0,
          shadowOpacity: 0,
          borderBottomWidth: 0,
        
      )
    
 >

【讨论】:

以上是关于如何在 react-native IOS 中隐藏或删除阴影或底部边框的主要内容,如果未能解决你的问题,请参考以下文章

React-native:如何从 Windows 构建 ios

在 react-native 中隐藏和显示带有动画的 createBottomTabNavigator 选项卡栏

没有 react-native 是不是可以在 Android 和/或 iOS 的后台任务中收集地理位置信息?

如何在WebView中禁用用户文本选择[React-Native]

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

如何在 react-native 中重置 IOS 文件夹