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 大小类中的自定义字体大小无法与自定义字体正常工作 的相关文章

  • tableView.dequeueReusableCellWithIdentifier() 导致应用程序挂起

    原帖 我们最近将我们的应用程序转换为 Swift 2 0 和 iOS9 我看到的一个奇怪的问题是调用 tableView dequeueReusableCellWithIdentifier 会导致应用程序挂在模拟器中 The code fu
  • iOS 中如何清除特定域的 cookie?

    我已经搜索了 StackOverflow 上的几乎所有问题来寻找我的问题的答案 我还没有找到任何有用的链接或教程来说明哪种方式最好清除特定域的 cookie 如果有人可以帮助我 请 我自己找到了解决方案 如果您想删除 UIWebView 中
  • 如何将导航栏大标题转换为多行,居中对齐

    我正在尝试设计具有多行居中大标题文本的视图控制器 就像苹果的 Ask Siri Settings gt General gt Keyboards gt About Ask Siri Dictation and Privacy 我可以使用以下
  • 将第 3 方库 ZXing 导入 Xcode

    我尝试了多种方法将第 3 方库 ZXing 导入我的 iOS 应用程序 但所有方法都很痛苦 或者根本不起作用 如果有人可以建议我做错了什么 或者提出导入 ZXing 等库的更好方法 我将非常感激 一定比这个容易 这就是我所做的 结果是 My
  • 自定义字体显示在 IB 中,但不显示在模拟器中

    我已经设置了一个UITextView and a UILabel使用自定义字体 它是垂直镜像的蒙古文字体 但我还添加了英文文本 以便您可以看到效果 这些文字显示在 Interface Builder 中 但在模拟器中大部分字符都在UITex
  • 是否有针对不同屏幕尺寸的单独故事板?

    基本上我已经完成了一个应用程序 我唯一的问题是 ATM 机应用程序在设计时只考虑了 4 英寸显示屏 当在 3 5 英寸模拟器上运行时 应用程序会丢失 0 5 英寸 显然 那么我的问题是 如何在 Xcode 5 中为不同的屏幕尺寸设置不同的故
  • 无法构建 Saurik 的 ldid 实用程序

    当我执行此命令 make sh 时 我遇到这些错误 构建用于越狱调整开发的 ldid 实用程序 Bilals Mac ldid billy make sh g arch i386 arch x86 64 arch ppc arch armv
  • XMPPFramework - 如何创建多用户聊天室?

    我如何使用XMPPFramework在iPhone中实现GroupChat 我尝试了以下代码 但房间没有创建 我如何知道房间是否创建 XMPPRoomDelegate没有被调用 当Stream断开连接时 调用handleDidLeaveRo
  • 如何打开定位服务

    当有人第一次拒绝时 如何从实际应用程序重新打开定位服务 我可以选择关闭或打开它 您只能提示他们在屏幕上打开定位服务 如下所示 UIApplication sharedApplication openURL NSURL URLWithStri
  • NSString – 静态还是内联?有性能提升吗?

    如果我写的话会有任何性能提升吗 NSString helloStringWithName NSString name static NSString formatString Hello return NSString stringWith
  • 在 WKWebView 中禁用放大手势

    我正在寻找一种方法来禁用 WKWebView 的 iOS 实现上的 捏合缩放 放大手势 OS X 有一个 magnification BOOL 属性 但在 iOS 上似乎不可用 WKWebView h if TARGET OS IPHONE
  • Parse.com 从相关 PFObject 获取 PFUser

    我正在将照片保存为 PFObject 解析 并使用 PFUser currentUser 用户 ID 作为其键之一 我想在表格视图中显示照片以及该 PFUser 的详细信息 但是当我尝试获取用户时 PFUser user self phot
  • 如何使用 NSUserDefaults 在 Swift 中存储自定义类的数组?

    我有一个名为的自定义类Person当某人输入信息时 它会存储有关某人的各种属性 class Person Person dictionary variable var name String var age String var html
  • 是否可以使用 Firebase 安排推送通知? [复制]

    这个问题在这里已经有答案了 我已经阅读了我能找到的所有文档 但仍然不知道这是否可行 如果我是用户 我可以安排特定时间的推送通知吗 Example 1 我是用户并打开应用程序 2 我允许通知并转到 pickerView 或其他任何内容 并设置
  • 在 Xcode 5 中重命名 iOS 项目[重复]

    这个问题在这里已经有答案了 我需要重命名一个 iOS 项目 有没有办法在不开始一个全新项目的情况下做到这一点 我发现的所有其他信息都与 Xcode 4 或旧版本相关 这些方法似乎使项目崩溃 我在尝试任何名称更改之前创建了一个快照 在 Xco
  • 将 SSLSetEnabledCiphers 与 AFNetworking 结合使用来禁用弱密码

    我正在尝试禁用一些密码 弱 例如单个 DES 单个 DES 40 位等 我尝试过使用这段代码在 Cocoa 中使用 CFSocket CFStream 时如何设置 SSL 密码 https stackoverflow com questio
  • Apple Watch 预构建操作可更改故事板 customModule 引用

    我目前有一个项目 其中包含同一应用程序的 3 个不同版本 不同的品牌等 该项目运行得很好 从那时起 我添加了 3 个新的 Apple Watch 目标 每个应用程序 版本 1 个 其中 2 个引用 主 Apple Watch 目标中的文件
  • ios水平居中约束问题?

    I am having hard time in learning constraints auto layout in iOS I have used any width any height I have a storyboard sc
  • 如何让按钮闪烁?

    我试图在扫描正确时将按钮的颜色 只是闪烁 闪烁 更改为绿色 在出现问题时将按钮的颜色更改为红色 我可以用这样的视图来做到这一点 func flashBG UIView animateWithDuration 0 7 animations s
  • PFQueryTableViewController 错误

    我正在遵循在线教程 使用 Parse 作为后端创建照片共享应用程序 我已经运行了两次教程 两次都从头开始创建应用程序 但在同一位置仍然出现相同的错误 我到处寻找解决方案 但仍然没有运气 我正在使用 PFQueryTableViewContr

随机推荐