gpt4 book ai didi

ios - React Native TextInput 在 iOS 上渲染文本太高,切断了某些字符的顶部

转载 作者:行者123 更新时间:2023-11-29 05:08:48 25 4
gpt4 key购买 nike

我的 React Native 应用程序中有一个简单的 TextInput。相关代码如下:

<View style={styles.AmountWrapper}>
<TextInput
multiline={true}
placeholder="$0"
placeholderTextColor={colors.black38}
style={styles.NumberInput}
keyboardType={"numeric"}
/>
</View>

let styles = StyleSheet.create({
AmountWrapper: {
flexDirection: "column",
flex: 1,
alignItems: "center",
justifyContent: "center",
backgroundColor: colors.white
},
NumberInput: {
flexDirection: "row",
alignItems: "center",
flex: 0,
fontFamily: styleHelper.fontFamily("medium"),
fontSize: 48,
paddingHorizontal: 16,
paddingTop: 0,
paddingBottom: 0,
color: colors.blue,
textAlign: "center",
borderWidth: 0,
textAlignVertical: "center"
},
});

我正在使用 Android 9.0 的 Android Studio Pixel 3 进行模拟,并使用 Xcode 的模拟器模拟 iOS 12.4 iPhone X。

在 Android 上,这完全按照我想要的方式呈现:

Android rendering properly

问题出在 iOS 上。它将文本渲染得太高,切断了美元符号的顶部和数字的几个像素。它使用占位符和用户输入文本时执行此操作:

iOS rendering improperly

我尝试更改边距、填充、textAlign、lineHeight、flexDirection、alignItems 和 justifyContent。我还在 TextInput 中尝试过 multiline={false}

如何让 iOS 进一步向下渲染文本并在 TextInput 中正确显示?

最佳答案

我认为你在 IOS 上对高度和 lineHeight 有一些压倒一切的正常行为。在 iOS 上,在 React Native 中设置 lineHeight 或设置 textInput 的高度适用于我。我建议将其中之一的大小设置为至少与您的 fontSize 一样大,然后注释掉样式中的行,以通过消除过程找出导致它的原因。以下是适用于我的一个项目的样式示例:

         <TextInput style={styles.inputsTwo}
accessible={this.state.access}
placeholder="Email"
clearButtonMode="always"
onChangeText={text => this.setState({email: text})}
value={this.state.email}
/>
<TextInput style={styles.inputs}
accessible={this.state.access}
placeholder="Password"
secureTextEntry={true}
clearButtonMode="always"
onChangeText={text => this.setState({password: text})}
value={this.state.password}
/>

然后是我的风格:

   inputs: {
textDecorationLine: 'underline',
marginBottom: 5,
textAlign: 'left',
marginLeft: 30,
marginRight: 30,
borderBottomColor: '#808080',
borderBottomWidth: 2,
height: 48,
fontSize: 48
},
inputsTwo: {
textDecorationLine: 'underline',
marginBottom: 10,
textAlign: 'left',
marginLeft: 30,
marginRight: 30,
borderBottomColor: '#808080',
borderBottomWidth: 2,
height: 48,
fontSize: 48
},

关于ios - React Native TextInput 在 iOS 上渲染文本太高,切断了某些字符的顶部,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/59885180/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com