如何将自定义图标添加到 NativeBase

2023-12-13

我有.ttf and .svg我设计的自定义图标的文件。但我想将它们导入到我的 NativeBase 项目中,使它们可以在 NB 中使用<Icon />成分。我怎样才能实现这个目标?


NativeBase 的 React Native 自定义图标字体

采纳自:https://medium.com/@kelleyannerose/react-native-custom-icon-font-with-no-sad-red-screen-72b8d09a0e7b

这对我有用:)


Step 0:React Native 矢量图标安装和链接 确保您已安装并链接了react-native-vector-icons。如果您尚未安装它,请按照其文档中的安装说明进行操作。通常这两个命令应该可以为您完成。

npm install react-native-vector-icons --save
react-native link

Step 1:在 Fontello 中添加图标 首先,您必须将图标转换为字体。去fontello.com,正如他们的 UI 如此准确地建议的那样,“将自定义 SVG 图标或 SVG 字体拖动到此处”。

enter image description here


Step 2:选择图标 这可能不是那么明显,但是上传图标后,您必须选择要包含的图标(一一)。这很好,因为如果您愿意,您可以从其他库中选择图标,并且它们都将成为您的一种图标字体的一部分。您将通过红色圆圈清楚地看到您的选择。

enter image description here


第 3 步/重要提示:为您的字体命名 我建议在 Fontello 红色大按钮旁边的小框中命名您的字体。这样就不会对您的字体名称有任何疑问。而且文件名将与字体名称相匹配,因此您可以在 iOS 和 Android 中使用相同的名称,从而减少出错的空间 — 唷。

enter image description here


Step 4:下载网络字体 单击右上角的红色“下载网络字体”按钮。您可以通过单击向下箭头来单独获取配置文件,但您还需要 .ttf 文件。

enter image description here


Step 5:将 .ttf 文件添加到项目中 找出.ttf从您下载的字体目录中创建文件并将其添加到您的src有意义的文件。我通常有一个src/assets/fonts我使用的目录。为了我自己的理智,我喜欢在共享文件中的某个位置访问此文件。


第 6 步(iOS):将 .ttf 添加到 Xcode 中的资源 在 Xcode 中打开项目ios/yourprojectname.xcodeproj。进入 Xcode 后,右键单击资源目录,选择“将文件添加到“yourprojectname”...”,然后选择自定义图标字体 .ttf 文件(我的可用文件在该文件中)src/assets/fonts我在步骤 5) 中提到的目录。


第 7 步(iOS):添加字体以复制捆绑资源 仍在 Xcode 中,转到顶部栏中的“构建阶段”,打开“复制捆绑资源”,您将看到来自react-native-vector-icons的图标字体列表。检查该列表中是否有您的图标字体名称,如果不存在,请单击“+”并选择您的 .ttf 文件。

enter image description here


步骤 8(iOS): 添加到 INFO.PLIST 打开您的 info.plist 文件(最好在添加任何其他目标之前,因为这是将被复制的 info.plist)并打开“应用程序提供的字体”。单击带圆圈的小“+”。它会在顶部添加一行,供您输入字体文件名。

enter image description here


第 9 步(安卓): Add .ttf至安卓 添加.ttf文件到android/app/src/main/assets/fonts目录。这应该已经存在,因为你已经安装了react-native-vector-icons并运行react-native link它把所有 Android 图标字体文件放在这里。


Step 10:将配置和图标组件添加到您的项目中 返回共享src目录!在共享中的某个位置添加两个文件src名为的目录icon-font.js and icon-font.json或者你想怎么称呼他们就怎么称呼他们。我喜欢有一个src/config(你猜对了)配置内容的目录。

返回到您从 Fontello 下载的文件,获取config.json内容并将它们粘贴到您的icon-font.json file.

打开你的icon-font.js文件并粘贴以下内容(替换kelleyicons当然,无论您为自定义图标字体命名什么)。

import { createIconSetFromFontello } from 'react-native-vector-icons';
import fontelloConfig from './icon-font.json';
const MyIcon = createIconSetFromFontello(fontelloConfig, 'kelleyicons');
export default MyIcon;

Step 11:添加实例 在运行应用程序之前,请继续在某处添加图标字体的实例,以便您可以立即仔细检查它是否正常工作。在任何组件或屏幕文件中,从icon-font.js file.

import MyIcon from './../config/icon-font.js';

在你看来,像这样使用它(因为我使用的是 NativeBase,我将自定义图标包装在 Native Base 中Icon成分)。您可以在以下位置找到要使用的个人名称icon-font.json file.

<Icon><MyIcon
  name={'chrome'}
  size={20}
  color={'#333333'} /></Icon>

Step 12:保存、奔跑并(希望)庆祝! 确保所有内容都已保存,转到您的终端,run npm start,打开您的应用程序,祈祷零错误!


额外提示!

从 React Native 0.60 开始,资源会自动链接。这意味着如果你运行pod install(你最终会的)你may看到一个错误说'Multiple commands produce' error when building with new Xcode build system'。如果您正在运行New Build System (File > Workplace Settings > Build System)。此错误是因为 React Native 尝试链接相同的资源两次。如果您遇到这种情况,只需返回步骤 7 (iOS):添加字体以复制捆绑资源选择所有 .ttf 文件并按-按钮进行删除。然后再次构建:)

本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)

如何将自定义图标添加到 NativeBase 的相关文章

  • asp.net 将值从 JS/jquery 传递到 C# 背后的代码

    我已经尝试了 所有 可能的方法 将 screen width vlaue 从 aspx 页面上的 JS 脚本发送到后面代码中的 c 虽然我可以看到 screen width 被正确分配 但它永远不会分配给我的隐藏字段价值
  • Facebook 自定义故事与大图像 - 使用 Javascript 打开图

    我正在尝试创建一个自定义故事 每次有人尝试发布它时都会有一个新图像 现在我创建了一个对象 以及将两者结合起来的动作和故事 我想要实现的是一个看起来像这样的故事https fbcdn dragon a akamaihd net hphotos
  • React Native TypeError:无法读取未定义的属性“createClient”

    我是 React 本机框架的新手 我使用 create react native app AwesomeProject 创建了应用程序 我想在我的项目中使用 BLE 因此我安装了 react native ble plx 模块 但是当我创建
  • Chrome 开发工具:无需切换到“源”选项卡即可进入调试器

    如果我把debugger https developer mozilla org en US docs JavaScript Reference Statements debugger当 Chrome 开发工具打开时 我的 JavaScri
  • 如何翻转 Twitter Bootstrap 的工具提示

    我正在使用 Twitter 的 Bootstrap 来实现工具提示 目前 工具提示显示在链接上方 我希望工具提示出现在链接下方 我该怎么做呢 我正在触发工具提示 它明确指出 底部 但它不想为我工作 tooltip tooltip place
  • 如何在 HTML 表格上使用分页?

    我正在尝试使用这个分页library http flaviusmatis github io simplePagination js 在我的 HTML 表格页面 特别是浅色主题 中 但不知何故 我无法理解如何在我的 HTML 页面中以这种方
  • 用于传输命名参数和正文的云端点资源属性不起作用

    我正在尝试通过gapi client rpc调用实现对谷歌云端点的调用 如文档中所述 和Google Cloud Endpoints 使用 JS 客户端进行调用 传递参数和 JSON 正文 https stackoverflow com q
  • 修剪日期格式 PrimeNG 日历 - 删除时间戳、角度反应形式

    我将以下内容推入我的反应形式 obj 中2016 01 01T00 00 00 000Z但我想要以下2016 01 01 有谁知道有一个内置函数可以实现上述目的 我已经搜索过文档here https www primefaces org p
  • 从 html5

    我正在寻找一种方法来根据用户代理字符串将控件属性添加到视频标签 我不希望在 iPad 和 Android 之外的任何浏览器或设备上出现控件属性 所以我认为用户代理是最好的识别方法 因为 ipad 和 android 一词出现在各自的 UA
  • Intro.js 2页然后返回首页

    我在用intro js http introjs com 为我的网站创建一个小介绍 我希望游览从第 1 页 主页 2 另一页 然后回到第 1 页 主页 我已经成功地从第 1 2 页开始 但不确定如何让它返回到第 1 页 我对 javascr
  • 如何使用javascript从word文档页面中删除表格设计? Word js 插件

    我正在从表格 html 的 word 文档最后一页插入表格设计 我怎样才能删除它 这是我的代码 async function NewMap try await Word run async context gt html to word h
  • React Native Android 无法连接到 WebSocket

    尽管 Web 实现可以工作 但 android 模拟器以及我的设备无法连接到 WebSocket 在引发错误的地方收到以下事件错误代码 然后断开连接 connection error Event isTrusted false messag
  • 如何更改元素的 CSS 类并在单击时删除所有其他类

    我如何处理 AngularJS 2 中的一种情况 即单击一个元素需要更改其自己的样式 并且如果其他元素具有该样式 则需要将其删除 最好在一个函数中 如同Angular js 如何在单击时更改元素 css 类并删除所有其他元素 https s
  • Onblur 事件在另一个 div 的 onclick 之前触发

    如上所述 我有一个按钮 单击该按钮将打开子菜单 对于子菜单中的每个选项 都有三个元素 我认为实际上还有更多元素 但为了简单起见 将其保留为 3 我将焦点放在子菜单的主 div 白色 框架 上 Onblur 这个 div 然后我隐藏子菜单 这
  • 移动浏览器中的 React 性能

    我有一个组件 表 其中包含许多行 其中包含数据编辑 其掩码形式为contenteditable 可以选择所有字段并同时更改所有行 在桌面上它运行得相当快 但在 iPhone 6 上我有不真实的滞后 Safari 每次操作都会挂起 20 秒
  • Facebook API Javascript JSON 响应

    function getUser FB api me function response console log Response is response alert Your name is response first name ale
  • 在firefox上用js改变表单方法

    我需要使用 javascript jQuery 或纯 更改表单的方法属性 我的表单有 method post 我尝试用以下方法更改它 submit button click function var url input id url val
  • 使用 javascript/jquery 从数据库格式化日期的正确方法

    我正在调用包含日期时间数据类型的数据库 日期看起来像这样 2005 05 23 16 06 00 000 当用户从列表中选择某个项目时 我想在表格中显示它 我调用我的控制器操作并返回所有时间的 Json 并将它们放入表中 问题是日期完全错误
  • JsGrid 将嵌套对象加载到表中

    我正在 Django 中开发一个 Web 项目并使用 jsGrid 我遇到了问题并且找不到解决方案 我有一个嵌套的 JSON 数据 它是通过组合多个数据库表记录创建的 这是我的 JSON count 3 results personnel
  • 如何在 Firefox 插件中追加到文件?

    var tabs require sdk tabs var iofile require sdk io file var widgets require sdk widget var selection require sdk select

随机推荐