Xcode 6 大小类中的自定义字体大小无法与自定义字体正常工作

2023-12-25

Xcode 6有一个新功能fonts and 字体大小 in UILabel, UITextField, and UIButton可以根据当前设备配置的尺寸类别自动设置,就在故事板中。例如,您可以设置一个UILabel在“任意宽度、紧凑高度”配置上使用字体大小 12(例如在横向 iPhone 上),在“常规宽度、常规高度”配置上使用字体大小 18(例如在 iPhone 上)iPads)。更多信息请点击这里:

developer.apple.com/size_class https://developer.apple.com/library/content/documentation/UserExperience/Conceptual/AutolayoutPG/Size-ClassSpecificLayout.html

从理论上讲,这是一个很棒的功能,因为它使得无需根据设备配置以编程方式在 UI 功能上设置不同的字体。现在,我有一些条件代码可以根据设备类型设置字体,但显然,这意味着我必须在整个应用程序的任何地方以编程方式设置字体。所以我最初对这个功能非常兴奋,但我发现它对我来说实际使用有一个严重的问题(也许是一个错误)。请注意,我正在构建反对SDK 8并设定最低部署目标iOS 8,所以这与旧版本iOS的兼容性无关。

问题是这样的:如果我为不同的尺寸类别设置不同的字体大小并使用“系统”字体由...提供iOS,一切都按预期工作,并且字体大小根据尺寸类别而变化。如果我使用应用程序提供的自定义字体(是的,我已在应用程序包中正确设置它,因为它以编程方式工作)并将自定义字体设置为label in an XCode 6 故事板,这也按预期工作。但是,当我尝试在故事板中针对不同尺寸类别使用不同尺寸的自定义字体时,它突然不起作用。配置中的唯一区别是我选择的字体(自定义字体与系统字体)。相反,所有字体都显示在设备和模拟器 as the 默认系统字体 at the 默认尺寸,无论尺寸类别如何(并且我通过调试器验证它正在用系统字体替换故事板中指定的实际字体)。所以基本上,自定义字体的尺寸类别功能似乎被破坏了。另外,有趣的是,自定义字体实际上在视图控制器的 XCode 6“预览”窗格中正确显示和调整大小:仅当在实际 iOS 系统上运行时它才停止工作(这让我认为我配置正确) 。

我尝试了多种不同的自定义字体,它似乎对它们中的任何一个都不起作用,但如果我使用“系统”,它总是有效。

无论如何,还有其他人看到过这个问题吗Xcode 6?

关于这是否是 iOS 8、Xcode 或其他东西中的错误的任何想法

我做错了吗?

正如我所说,我发现的唯一解决方法是继续以编程方式设置字体,就像我对大约三个版本的 iOS 所做的那样,因为这确实有效。

但如果我能让它与自定义字体一起使用,我希望能够使用此功能。对于我们的设计来说,使用系统字体是不可接受的。


附加信息:从 Xcode 8.0 开始,该错误已修复。


快速修复:

1) 将字体设置为尺寸类别的系统

2)子类 UILabel 并重写“layoutSubviews”方法,例如:

- (void)layoutSubviews
{
  [super layoutSubviews];

   // Implement font logic depending on screen size
    if ([self.font.fontName rangeOfString:@"bold" options:NSCaseInsensitiveSearch].location == NSNotFound) {
        NSLog(@"font is not bold");
        self.font = [UIFont fontWithName:@"Custom regular Font" size:self.font.pointSize];
    } else {
        NSLog(@"font is bold");
        self.font = [UIFont fontWithName:@"Custom bold Font" size:self.font.pointSize];
    }

}

顺便说一句,对于标志性字体来说这是一种非常方便的技术

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

Xcode 6 大小类中的自定义字体大小无法与自定义字体正常工作 的相关文章

  • ShareKit + Facebook 身份验证不起作用

    我正在使用 ShareKit 从我正在开发的 PhoneGap 应用程序发布到 Facebook 我在 Facebook 中创建了该应用程序 并在我的项目中安装了该插件 Twitter 工作正常 但当我尝试在 Facebook 上分享时出现
  • ios 11 - UIBarButtonItem 内的 UIButton 导致自动布局错误

    我在将 UIButton 添加到 UIBarButtonItem 时遇到了一个已知问题 我尝试按照建议添加自动布局约束堆栈溢出 https stackoverflow com a 46336639 505603但我收到如下所述的错误 UIB
  • 如何获取 UITableView 中的所有单元格

    假设我有一个包含多行的 UITableView 我想在某个时间点将所有 UITableViewCells 作为 NSArray 获取 我努力了 tableView visibleCells 但这种方法有一个问题 我无法拥有当前不在当前屏幕中
  • 我如何从 iPhone 设备获取电子邮件历史记录..?

    friends 我想从我的 iPhone 访问电子邮件历史记录 并且还希望在收到新邮件时收到通知 如果可能的话 请向我提供源代码片段 Thanks 简而言之 使用任何已记录的 API 都是不可能的
  • 所有针对 iTunes Connect 的构建,导入此构建时出错 [关闭]

    Closed 这个问题不符合堆栈溢出指南 help closed questions 目前不接受答案 我将构建上传到应用程序商店 之后它在活动中显示错误 任何人都可以帮帮我 SOLVED 转到构建设置 gt 搜索 bitcode gt 转启
  • Xcode 在代码签名身份中看不到我的开发人员证书

    我续订了 IOS 开发人员证书 从钥匙串中删除了旧证书 然后单击了我的证书 钥匙串中的一切看起来都很正常 我有分发 开发人员 WWDC 证书 每个配置文件看起来都有效 并带有绿色标记 在组织器中的团队和配置文件部分下 但在代码签名身份下的
  • 使用 nib 作为带有 nib 类的表节标题

    我想创建一个加载 nib 文件并将其设置为标题 UIView 的节标题 这个 nib 文件还将有一个关联的类 其中插座和操作连接到 因此我想像平常一样使用 nib 加载该类 我在网上搜索并找到了几个类似的答案 但我找不到任何适合我的答案 经
  • 选择 UITableViewCell 时 UIView 背景颜色消失

    我在界面生成器中构建了一个简单的 tableViewCell 它包含一个包含图像的 UIView 现在 当我选择单元格时 会显示默认的蓝色选择背景 但 UIView 的背景颜色消失了 我的 UITableViewCell 的实现文件没有做任
  • 如何在 iOS 中将 Firebase 对象持久保存到磁盘?

    看起来Firebase http www firebase comiOS 实现不支持客户端模型的离线缓存 这在实践中意味着 对于需要身份验证的 Firebase 应用程序 您需要首先进行身份验证并等待 Firebase 完成登录 检查用户身
  • iPhone SQLite页面缓存不断增长

    I use sqlite数据库用于存储 还有许多数据库事务 我的问题是 sqlite 页面缓存的内存使用量快速增长 在instruments我可以找到这条线 Graph Category Live Bytes Living Transien
  • 在 UITextView 中获取 HTML

    我在中显示htmlUITextView by self textView setValue b Content b forKey contentToHTMLString 编辑内容后UITextView 我想获取包含 html 的内容 所以我
  • iOS Swift 在后台下载大量小文件

    在我的应用程序中 我需要下载具有以下要求的文件 下载大量 例如 3000 个 小 PNG 文件 例如 5KB 逐个 如果应用程序在后台继续下载 如果图像下载失败 通常是因为互联网连接丢失 请等待 X 秒然后重试 如果失败Y次 则认为下载失败
  • 访问 google reader 的 Endpoints API 时出错

    我正在尝试在iPhone APP中实现google reader 到目前为止我已经成功收到了sid and auth 当我尝试使用以下命令调用 Endpoints API 时 问题就出现了GET 这是代码 ASIHTTPRequest re
  • 带有 allowedEditing 的 UIImagePickerController 不允许平移裁剪

    我在这里看到这个问题 UIImagePicker 允许编辑卡在中心 https stackoverflow com questions 12630155 uiimagepicker allowsediting stuck in center
  • UILabel 中的文本未垂直居中

    我使用以下代码创建了一个标签 func setupValueLabel valueLabel numberOfLines 1 valueLabel font UIFont name Avenir Black size 50 valueLab
  • cordova插件条码扫描仪打不开扫描

    我的条形码扫描仪插件有问题 我不是天才 我不太了解如何编写网络应用程序 我使用phonegap和cordova 并且尝试制作一个网络应用程序 在单击链接后扫描条形码 我之前已经使用此命令行安装了该插件 cordova plugin add
  • 领域:结果 和列表

    是否可以转换Results
  • WKWebview 中的 iCLoud 文档选择器关闭容器视图

    我有一个 WKWebview 加载基于 Web 的 UI 我希望用户能够从其 iCloud 文档上传文件 我已授予正确的权限 并且可以浏览 iCloud 文档 但是 当我选择文件或单击取消按钮时 文档选择器视图也会关闭 WKWebview
  • 无需越狱即可检测iOS9上哪个应用程序处于前台

    我正在尝试记录用户在 iOS9 上的个人应用程序使用情况 我宁愿它不会使用越狱有限的解决方案 不言自明 在越狱手机上执行此应用程序的变体应该不难 https www andyibanez com create mobilesubstrate
  • 如何将自定义 C 代码放入 SwiftPM 包中?

    我正在尝试将 C 代码打包到 Swift 模块中 我们称之为CModule 一旦我将其放入项目的基本文件夹中 Swift模块 并配置了搜索路径 我可以在 Swift 文件中自动完成工作 并检测错误 警告 问题是 导入时它无法识别该模块 并且

随机推荐