Tag: 字体

iOS自定义字体问题

以及如何解决! 当您在Xcode上为iOS开发移动应用程序时,有时您的自定义字体有一定的内边距。 因此,如果您在UILabel或UIButton中使用它,则文本可以移动并且不会居中显示,如下所示: 您可以更改所需的所有边距和填充,此文本将继续与您抗争……并且有充分的理由,问题不是来自UIKit而是来自您的自定义字体本身。 不用担心,它可以修复! 要解决此小问题,您需要执行以下步骤: 下载并安装Apple字体工具(已安装Xcode的版本) 在您喜欢的终端中,转到您不愿意使用的字体所在的文件夹,然后使用以下命令行: ftxdumperfuser -t hhea -A dfont.otf (也适用于.ttf字体)。 它将为您生成一个名为font.hhea.otf的文件(分别是.ttf ) 打开此文件并修改以下值: ascender将其添加lineGap值(如果ascender = 750和lineGap = 200,然后将ascender设置为950),然后将lineGap设置为0。 保存修改,然后使用命令行ftxdumperfuser -t hhea -A f font.otf (分别是.ttf )重新生成字体。 就是这样! 通常,您的字体应正确显示在您的应用程序界面中! 不再对Xcode感兴趣! 最后,一个设计师的笑话: 一种字体在罗马遇到另一种。 他问:“嘿,你也是罗马人吗?”“不,”另一人说,“但是我是斜体!” 感谢您的阅读,祝您有美好的一天!

反应本机自定义字体— iOS

▶继续由Dave Hudson撰写的这篇文章。 重要的是要注意, iOS根据其Postscript名称(或全名)来标识一种字体,该名称并不总是与该字体的实际Filename相同 。 因此,如果您不知道fontFamily(或PostScript名称),则可以在AppDelegate的 ` didFinishLaunchingWithOptions`方法中运行以下代码, 对于Swift 3.0 for familyName in UIFont.familyNames { for fontName in UIFont.fontNames(forFamilyName: familyName ) { print(“\(familyName) : \(fontName)”) } } 对于Objective-C for (NSString *fontFamilyName in [UIFont familyNames]) { for (NSString *fontName in [UIFont fontNamesForFamilyName:fontFamilyName]) { NSLog(@”Family: %@ Font: %@”, fontFamilyName, fontName); } } 这应该给你这样的输出, familyName : fontName 希望这可以帮助。 […]

UIFontMatrix

苹果在iOS 11的UIFONT中引入了新的可访问性功能,称为“ UIFontMetrics ”。 基本思路: 它是获取支持应用程序中动态类型的自定义字体的对象。 概述: UIFontMetrix允许在您的应用程序中添加自定义可缩放字体支持。 您可以通过设置应用程序更改辅助功能字体大小,该设置应用程序直接反映在包含动态系统字体类型的应用程序字体中。 在iOS 11上,apple允许用户根据用户的可读性设置辅助功能字体大小。 应用支持动态类型 ,可根据您的首选阅读大小进行调整。 分步集成: 您需要在viewDidLoad()中调用“ showFontAndFamily”方法。 强制性的,我们需要打开上图中提到的更大的辅助功能大小 。 启用了字体滑块,可以根据您的选择使用和设置字体。 现在打开您的应用程序。

带有TypographyKit的iOS中的动态类型

动态类型是iOS 7中引入的功能,允许用户更改跨iOS使用的默认字体大小。 它主要用于支持视觉障碍的用户,但实际上,出于各种原因,许多iOS用户只是更喜欢较小/较大的阅读尺寸。 可以从“显示和亮度”->“文本大小”中的“设置”应用程序更新,也可以从“常规”->“辅助功能”->“大文本”中更新设置。 如果使用前一种设置,则只有七个字体大小可供选择,而在后一部分中,有一个“较大的可访问性大小”开关,如果启用,则允许用户从另外五个较大的字体大小中进行选择。 没有开发人员的额外努力,App Store中的应用程序不会自动支持动态类型(与Android不同)。 在iOS 7中,Apple提供了六个UIFontTextStyles,即为屏幕上的每个标签分配一个文本样式,例如标题文本或正文文本,这将使应用程序开发人员可以按如下方式检索该文本样式的首选字体: UIFont.preferredFont(forTextStyle:.body) 当用户调整“设置”应用中的字体大小滑块时,此方法返回的字体的磅值会相应更新。 在iOS 7时代,实现动态类型具有挑战性,因为要求应用程序开发人员将每个显示文本的UIKit元素分类为可用的UIFontTextStyle类别之一,以便检索该类别的首选字体。 此外,返回的首选字体将是系统字体,即Helvetica Neue Light(在9之前的iOS版本上;在iOS 9及更高版本中默认为旧金山),这意味着开发人员在支持动态类型时无法使用自定义字体(更多信息请参见稍后)。 由于这些原因,App Store中的应用程序通常不支持动态类型。 如果用户在“设置”应用程序中更新了字体大小首选项,则已经打开且支持动态类型的应用程序通常直到用户关闭并重新启动后才会更新(取决于对UIFont.preferredFont(forTextStyle: )。 每次用户使用“设置”应用程序中的滑块更新“动态类型”首选项时,都会更新属性UIApplication.shared.preferredContentSizeCategory的值,并返回新的UIContentSizeCategory值,即滑块上的每个槽口都对应一个UIContentSizeCategory值。 为了更新应用程序的字体大小而不必关闭并重新打开应用程序,开发人员可以使用NotificationCenter观察(UIContentSizeCategory)didChangeNotification,然后调用UIFont.preferredFont(forTextStyle :),该字体将返回具有更新大小的字体每个UIKit元素都会在屏幕上显示文本。 实际上,在每个UIViewController中观察此通知并以编程方式在屏幕上更新每个文本UIKit元素通常会导致UIViewController Controller肿,其中包含许多其他代码来支持动态类型。 出于上述原因,创建了TypographyKit。 TypographyKit允许应用程序使用自定义字体,同时支持来自iOS 9+的Dynamic Type,而无需大量额外代码。 如果使用Cocoapods,可以通过将以下行添加到项目Podfile中,然后运行“ pod install”命令来将TypographyKit合并到您的Xcode项目中: pod “TypographyKit” 对于那些使用迦太基的人,可以通过在项目的Cartfile中添加以下行,运行“迦太基更新–平台iOS”来构建框架,然后手动为相关Xcode项目目标链接构建框架,从而安装TypographyKit: github “rwbutler/TypographyKit” 下一步是将TypographyKit配置文件添加到您的项目中(请确保将其添加到“副本捆绑资源”构建阶段)。 该文件可以采用属性列表或JSON格式,并分别命名为TypographyKit.plist或TypographyKit.json。 TypographyKit配置指定在应用程序中使用的印刷样式(即UIFontTextStyles)以及每种样式的外观。 它还指定字体应如何随着UIContentSizeCategory的更改而缩放: { “ typography-colors”:{ “ background”:“较淡的宝蓝色”, “ gold”:“#FFAB01”, “宝蓝色”:“#08224C”, “ text”:“ gold” }, “印刷工具包”:{ […]

在项目中使用图像资产的更好方法

如果您讨厌在项目中使用PNG,JPEG,JPG等作为资产,并且不想增加二进制文件大小,那么您来对地方了。 让我们讨论一个非常酷的技巧,以便在不增加二进制文件总大小的情况下也有效地使用它们。 因此,让我们开始吧。 这个想法是为所有资产制作一个字体文件,并将其用作普通字体。 让我一步一步地告诉你: 要求您的UI开发人员为您提供所有资产的所有SVG文件。 登录fontastic.me,您会发现一些很酷的字体已经存在,您也可以使用它们😀单击“ 添加更多图标 ”选项,然后单击“ 导入图标 ”并上传您的SVG文件。 上传完所有SVG文件后,单击“ 主页 ”选项。 您会发现fontastic.me已使用所有上传的SVG创建了一个“ New Set ”。 如果需要,可以通过右键单击所有图标以及已经存在的图标来选择所有图标,然后单击“ 发布 ”。 恭喜,您的字体文件已创建。 👍 单击“ 修改字体 ”选项,然后为字体文件命名,例如ProjectAssets或简单地命名为ProjectName(否则,它会给您自己的名称)。 点击右侧的“ 下载 ”按钮下载字体文件。 解压缩下载的文件夹,然后将.ttf文件拖到Xcode内,并在项目的info.plist文件中为其添加一个条目,就像对其他字体文件一样。 打开解压缩的文件夹并打开“ icons-reference.html”文件并创建如下结构,已在字体文件内为您的资产分配了一个字符以使用它们。 2.现在,假设您要在导航栏上显示齿轮图标 您所有资产的单一文件。 您可以将它们用作文本,因此不需要NSTextAttachments 它不会达到您应用的二进制大小。 无需更改图像的色调颜色,只需更改文本颜色即可。🙂🙂 当您想在现有文件中添加更多图标时,唯一的不适便会出现。 您必须再次登录fontastic.me并上传新的SVG,然后重新下载字体文件,并用新下载的字体文件替换Xcode中的现有字体文件,并更新“ AssetCharacterMap”结构(或您使用的任何名称)给定的)与新字符。 不断分享,不断学习。

如何将字体导入Xcode(Swift 3)

因此,您正在构建自己的第一个应用程序……让我们用一些很酷的字体来增强UI效果! 这是6个步骤的操作方法。 第1步: 找到一个漂亮的字体并下载。 我使用DaFont作为我的个人徽标,并为该项目/博客文章找到了另一个漂亮的字体Ember。 我之所以选择Ember,是因为它在公共领域,但是您可以轻松地选择一种不错的字体,然后向其设计师发送一份体贴的捐款。 (我也非常喜欢Boquerón,但也许我会将其保存到另一个应用程序项目中)。 确保字体为TFF(TrueType格式)或OTF(OpenType格式)。 第2步:保存字体并将其拖到Xcode项目中。 将字体文件夹拖到项目中时,请确保“根据需要复制项目”。 第3步:单击您的字体文件夹,以确保它们包含在“目标成员身份”中。 步骤4:快速检查一下,您的字体在“构建阶段”->“捆绑资源”中吗? 步骤5:在plist中手动输入字体名称。 第6步:使用字体! 使用情节提要 ,在下拉菜单中找到字体。 以编程方式,在标签或文本项上选择font属性。 在下面,我将按钮的字体更改为“ Ember”字体。 给我留言,让我知道您决定将哪些酷字体导入应用程序! 资源: DaFont.com 1001字体 字体松鼠

使使用UIFont更快,更不易出错

UIFontComplete 使使用UIFont更快,更不易出错 用法 该库只是UIFont一个扩展和一个Font enum ,每个iOS安装的标准Font都有一个案例。 不必再为寻找UIFont类型的名称而UIFont ,如果字体名称输入错误,运行时也不会感到惊讶。 代替UIFont的String基本构造UIFont : let font = UIFont(name:“ Arial-BoldItalicMT”,大小:12.0) 现在,您可以简单地开始输入字体枚举的名称,并让代码完成帮助您: let font = UIFont(font:.arialBoldItalicMT,size:12.0) 安装 迦太基 如果您使用迦太基来管理依赖项,只需将UIFontComplete添加到Cartfile : github “Nirma/UIFontComplete” 如果使用Carthage构建依赖项,请确保已将UIFontComplete.framework添加到目标的“ 链接的框架和库 ”部分,并且在Carthage框架复制构建阶段中包括了UIFontComplete.framework 。 可可豆 如果您使用CocoaPods管理依赖项,只需将UIFontComplete添加到Podfile : pod ‘UIFontComplete’ 要求 Xcode 8.0 迅捷3.0+ 贡献与维护 iOS上可用的字体肯定会更改,并且当它们执行此库中的Font枚举时,也将需要更新。 如果您想帮助维护或改进此库,请随时这样做。 执照 UIFontComplete是免费软件,可以根据LICENSE文件中指定的条款进行重新分发。 资料来源:https://github.com/Nirma/UIFontComplete

包装器,用于处理iOS中的字体

大家好,希望你做得很好! 在本教程中,我将引导您完成如何制作包装对象以处理iOS中所有自定义字体的方法。 开始吧… 字型: 字体可以为您的文本增加价值。 它可以帮助读者感知文字信息。 颜色 , 字体和文本大小的正确选择对于吸引目标受众至关重要。 使用印刷版吸引读者很容易,但要吸引他们的注意力需要更多的创造力。 TTF和OTF是扩展名,用于指示文件是字体,可用于格式化文档以进行打印。 TTF代表相对较旧的字体TrueType字体,而OTF代表OpenType Font ,它部分基于TrueType标准。 两者之间的重大区别在于它们的功能。 TTF仅取决于字形表,该字形表定义了每个字符的外观,而OTF能够与CCF(紧凑字体格式)表一起使用字形。 如何在iOS中添加自定义字体: 首先从Web或UIDesigner获取所需的字体文件(TTF或OTF) 将它们移动到您的项目文件夹中(如果需要,请确保复制并选择了目标)。 通过从导航窗格中选择项目根文件夹,然后从目标中选择“构建阶段”,仔细检查字体是否包含在资源包中。 然后展开“ Copy Bundle Resources”行,以查看那里的字体文件。 如果不存在,请在导航器窗格中选择文件,然后将其手动添加到目标中。 打开Info.plist,然后右键单击并选择“添加行”。 开始输入并选择“应用程序提供的字体”。 展开该行,然后在“值”字段中的“项目0”旁边输入字体的名称(包括其类型,例如,参见下图)。 →现在您知道了字体的价值,以及如何向iOS项目添加自定义字体。 现在,让我们编写一个包装对象来处理项目中的字体。 在开发阶段,字体大小或其样式随时可能取决于UI外观。 因此,通过使用该包装器,我们可以轻松处理这些更改,而无需花费大量时间和精力。 让我们编码: →首先,我们创建一个结构以封装所有需要访问的类型,以创建和返回字体 。 我们将枚举用于类型,因为它们在用例中非常方便。 它们也是值类型,因此也不必担心保留周期。 首先创建一个struct对象,定义一个枚举类型以选择或传递所需的Font名称。 此类型根据选择的情况返回一个值,该值是计算属性。 在本教程中,我使用“ SFProDisplay ”和“ SFProText ” 字体 (自定义),并且还提供了一个自定义大小写来访问预定义的系统(自定义)字体。 上面的Font对象不覆盖系统字体。 除系统字体外,您可以使用所有其余字体。 您可以根据需要使用系统API来构造系统字体类型。 如果要覆盖所有类型,请将它们包括在FontType 枚举中 。 如果您想了解有关在iOS中处理字体的更多信息,请检查以下我提供的资源。 目前为止就这样了。 祝您编程愉快,如果您遇到任何更好的资源或方法,请与我分享。 […]

在React Native中加载自定义字体的最简单方法

字体书预览 通常,它是没有扩展名的文件名。 如果不是这样,请使用查找程序command + i查看字体全名,或者查看“字体书”以检查字体系列名称。 无法识别的字体族“ YOUR_DEFINED_FONTS_FAMILY” 如果此消息显示为红色,则可能是字体家族名称错误。 检查您的字体系列名称。 并确保在链接自定义字体之后构建了应用程序。 我想再次添加字体! 您只需从№2开始执行。 好的字体确实会给应用程序留下深刻的印象。 如果您想创建出色的应用程序,则选择字体很重要。 在网络中,我们可以以相同的方式使用Web字体系统,但是它包含性能问题。 因此,在移动应用程序中,与Web应用程序相比,这是表达的优势。 让我们开始使用自定义字体创建有吸引力的应用程序。 下次,我将向您介绍如何在React Native应用程序中有效地管理字体。 干杯! 🍺