yarn add react-native-vector-icons
react-native link react-native-vector-icons
import Icon from 'react-native-vector-icons/FontAwesome';
a. 打开 xcode,将 Iconfont.ttf 文件拖入 RN 项目的 Resource 文件夹,注意必须勾选 ‘Create groups’ 和 ‘Add to targets’ 选项
b.在 xcode 点击项目名,再点击 Info tab, 手动添加相应字段
xcode配置完成
Android 平台中只需将 fontello.ttf 文件放入 android/app/src/main/assets/fonts
文件夹即可
我们创建自定义图标是通过 createIconSet 这个方法实现的, 这个方法需要一个glyphMap参数, 这里创建的json文件就是glyphMap的具体实现.
glyphMap整么来呢 看这里 (刚刚下载的字体包文件中的html文件,直接打开即可)
其中e600, e602是图标对应的16进制unicode我们需要的是10进制,所以把它转换一下, 下面使用的是js
parseInt("e600", 16)
58880
我们这里创建的iconfont.json的最终形式就是这样
{
"alipay": 58880,
"balance": 58882
}
alipay代表待会儿要使用时候传进去的name参数
58880表示刚刚16进制转换的值
import createIconSet from 'react-native-vector-icons/lib/create-icon-set';
import glyphMap from '../assets/Iconfont.json';
const iconSet = createIconSet(glyphMap, 'Iconfont', 'Iconfont.ttf');
export default iconSet;
import React, { Component } from 'react';
import {
Text,
View,
StyleSheet,
Button,
} from 'react-native';
import Iconfont from '../common/Iconfont';
export default class MyPage extends Component {
constructor(props) {
super(props);
this.state = { };
}
render() {
return (
);
}
}
const styles = StyleSheet.create({
container: {
flex: 1,
justifyContent: 'center',
alignItems: 'center',
backgroundColor: 'pink',
},
});
完成!