我可以在Interface Builder中设置字体,但是当我构建项目时,它不会在模拟器/设备上显示此字体.
这是我的John的答案版本,显示如果你有很多字体,该如何调用该函数import Foundationextension UIFont { @nonobjc static var loadAllFontsDO: dispatch_once_t = 0 class func initialsAvatarFont() -> UIFont { loadAllFonts() if let retval = UIFont(name: "MyFontname",size: kInitialsAvatarFontSize) { return retval; } else { return UIFont.systemFontOfSize(kInitialsAvatarFontSize) } } class func loadAllFonts() { dispatch_once(&loadAllFontsDO) { () -> VoID in registerFontWithfilenameString("theFontfilename.ttf",bundleIDentifIErString: "nameOfResourceBundleAlongsIDeTheFrameworkBundle") // Add more Font files here as required } } static func registerFontWithfilenameString(filenameString: String,bundleIDentifIErString: String) { let frameworkBundle = NSBundle(forClass: AnyClassInYourFramework.self) let resourceBundleURL = frameworkBundle.URLForResource(bundleIDentifIErString,withExtension: "bundle") if let bundle = NSBundle(URL: resourceBundleURL!) { let pathForResourceString = bundle.pathForResource(filenameString,ofType: nil) let FontData = NSData(contentsOffile: pathForResourceString!) let dataProvIDer = CGDataProvIDerCreateWithCFData(FontData) let FontRef = CGFontCreateWithDataProvIDer(dataProvIDer) var errorRef: Unmanaged<CFError>? = nil if (CTFontManagerRegistergraphicsFont(FontRef!,&errorRef) == false) { NSLog("Failed to register Font - register graphics Font Failed - this Font may have already been registered in the main bundle.") } } else { NSLog("Failed to register Font - bundle IDentifIEr invalID.") } }}总结
以上是内存溢出为你收集整理的swift – Xcode:在动态框架内使用自定义字体全部内容,希望文章能够帮你解决swift – Xcode:在动态框架内使用自定义字体所遇到的程序开发问题。
如果觉得内存溢出网站内容还不错,欢迎将内存溢出网站推荐给程序员好友。
欢迎分享,转载请注明来源:内存溢出
评论列表(0条)