我们在我们的项目中使用自定义字体.它在Xcode5中工作得很好.在Xcode6中,它可以在纯文本、代码中的属性字符串中工作.但是,当在模拟器或设备上运行时,在故事板中设置的那些属性字符串都会恢复为Helvetica,尽管它们在故事板中看起来没有问题.

我不确定这是不是Xcode 6或iOS 8 SDK的错误,还是在Xcode 6/iOS 8中更改了使用自定义字体的方式?

推荐答案

我的解决办法是使用IBDesignable类:

import UIKit

@IBDesignable class TIFAttributedLabel: UILabel {

    @IBInspectable var fontSize: CGFloat = 13.0

    @IBInspectable var fontFamily: String = "DIN Light"

    override func awakeFromNib() {
        var attrString = NSMutableAttributedString(attributedString: self.attributedText)
        attrString.addAttribute(NSFontAttributeName, value: UIFont(name: self.fontFamily, size: self.fontSize)!, range: NSMakeRange(0, attrString.length))
        self.attributedText = attrString
    }
}

在界面生成器中提供以下内容:

界面生成器带有属性字符串的自定义字体

您可以像平常一样设置属性字符串,但是您必须在新的可用属性中再次设置您的FontSize和FontFamily.

因为界面生成器在默认情况下使用自定义字体,所以结果是what you see is what you get,这是我在构建应用程序时更喜欢的.

Note

我之所以使用它而不仅仅是普通版本,是因为我在属性标签上设置了像行距这样的属性,这些属性在使用普通样式时是不可用的.

Ios相关问答推荐

崩溃到初始化react -带网页的原生iOS应用程序

更新Flutter项目时出错:CocoaPods找不到pod webview_flutter_wkwebview的兼容版本""

为什么Reaction-Native-Vision-Camera不能与闪光灯一起使用?

Xamarin Forms CustomPin iOS Render

Flutter 应用程序中带有Firebase的GoogleService-Info.plist中缺少CLIENT_ID、REVERSED_CLIENT_ID和ANDROID_CLIENT-ID

iOS上从谷歌云存储API不断收到网络连接已丢失的错误信息

如何以编程方式触发 SwiftUI DatePicker?

为什么@FetchRequest 在删除时不更新和重绘视图?

iOS 16 堆栈视图中按钮的奇怪动画

Swiftui为什么在点击第二行之前背景不起作用

SwiftUI 切换语句

实现一个将块用作回调的方法

缺少推送通知权利

是否可以在没有 Mac 的情况下为 iOS 制作 PhoneGap 应用程序?

如何从一个特定的视图控制器中隐藏导航栏

如何在 Swift 中使用包含多个值的查询参数构建一个 URL?

判断密钥是否存在于 NSDictionary 中

UITextView 内容插图

UIView - 加载视图时如何获得通知?

Flutter:如何创建一个新项目