gpt4 book ai didi

javascript - 如何在 React Native 中为不同的 IOS 设备设置字体大小

转载 作者:数据小太阳 更新时间:2023-10-29 05:00:01 25 4
gpt4 key购买 nike

在 react-native 中我设计了一个示例,当我在不同的 IOS 设备上检查它时这是我的代码:

render() {
return (
<View style={styles.container}>
<View style={styles.body}>
<TouchableHighlight style={styles.facebook} >
<View style={styles.row}>
<Image style={styles.icon} source={require('image!fb')}/>
<Text style={styles.facebookText} >Continue with Facebook</Text>
</View>
</TouchableHighlight>
</View>
</View>
)
}
};
var styles = StyleSheet.create({
container:{
marginTop: 65,
flexDirection:'column',
flex:1,
backgroundColor:'transparent'
},
body:{
flex:.5
},
facebook:{
marginTop: 25,
height: 50,
padding: 10,
marginRight: 40,
marginLeft: 40,
backgroundColor: '#1A8A29',
},
row:{
flexDirection:'row',
},
facebookText:{
marginLeft: 8,
fontSize: 20,
color: 'white',
alignSelf:'center'
},
icon:{
marginTop: 3,
marginLeft: 5,
width: 25,
height: 25
}
})

我check in iphone-6和5s字体问题来了任何人都可以帮助我解决这个问题,如何在 react-native 中为不同的 IOS 设备设置字体大小任何帮助都非常有用

最佳答案

我为我的项目编写了以下代码:

在文件中:multiResolution.js 我有:

export function getCorrectFontSizeForScreen(PixelRatio, screenWidth, screenHeight, currentFont){
let devRatio = PixelRatio.get();
let factor = (((screenWidth*devRatio)/320)+((screenHeight*devRatio)/640))/2.0;
let maxFontDifferFactor = 5; //the maximum pixels of font size we can go up or down
// console.log("The factor is: "+factor);
if(factor<=1){
return currentFont-float2int(maxFontDifferFactor*0.3);
}else if((factor>=1) && (factor<=1.6)){
return currentFont-float2int(maxFontDifferFactor*0.1);
}else if((factor>=1.6) && (factor<=2)){
return currentFont;
}else if((factor>=2) && (factor<=3)){
return currentFont+float2int(maxFontDifferFactor*0.65);
}else if (factor>=3){
return currentFont+float2int(maxFontDifferFactor);
}

}

function float2int (value) {
return value | 0;
}

然后在我做的每个 react-native 组件上:

import { PixelRatio } from 'react-native';
import {getCorrectFontSizeForScreen} from './multiResolution'
import Dimensions from 'Dimensions';
const {height:h, width:w} = Dimensions.get('window'); // Screen dimensions in current orientation

然后在我的 styles 上我做了:

var portraitStyles = StyleSheet.create({
titleText: {
fontSize: getCorrectFontSizeForScreen(PixelRatio, w,h,27),//magic takes place here
},
});

这是习惯,但对我来说效果很好。

此外(与您的问题无关,但我还是要说),我使用与 screenWidth 和 screenHeight 相关的宽度和高度,如下所示:

aStyleForAnElement:{    //this element will occupy
width: w*0.55, //55% of the screen width
height:h*0.05 //5% of the screen height
}

到目前为止,这就是我在项目中支持不同屏幕尺寸的方式。

新答案:

随着时间的流逝,我们学习。在我写这篇文章时,我没有其他解决方案来管理字体大小,只能使用自定义代码,但现在我不必执行以下任何操作:

我只是告诉我们的设计师针对可用的最低分辨率 320x480 进行设计(并给我以点而不是像素为单位的字体大小),然后我在针对 320x480 进行设计时只使用点而不是像素。

所有 320x480 以上的屏幕都将由 react-native 自动处理,我根本不需要编写任何花哨的代码来自动管理它。

我的组件现在看起来像这样:

BUTTON_TEXT: {
textAlign: 'center',
fontSize: 16, // this is 16 points
color: 'white',
backgroundColor: 'transparent',
},

关于javascript - 如何在 React Native 中为不同的 IOS 设备设置字体大小,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/32947036/

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