101 lines
3.1 KiB
Markdown
101 lines
3.1 KiB
Markdown
# CustomFontsPackage
|
|
|
|
A Swift package that includes custom fonts.
|
|
|
|
## Installation
|
|
|
|
Add the SPM package to your Xcode project at `main`
|
|
|
|
`https://github.com/tarasis/CustomFontsPackage.git`
|
|
|
|
## Usage
|
|
|
|
In your AppDelegate:
|
|
|
|
`import CustomFontsPackage`
|
|
|
|
Then in `didFinishLaunchingWithOptions` add `registerFonts()`
|
|
|
|
```
|
|
func application(_ application: UIApplication, didFinishLaunchingWithOptions launchOptions: [UIApplication.LaunchOptionsKey: Any]?) -> Bool {
|
|
|
|
// This code checks that the files are included in the CustomFonts bundle
|
|
if let files = try? FileManager.default.contentsOfDirectory(atPath: CustomFonts.fontBundle.bundlePath ) {
|
|
for file in files {
|
|
print(file)
|
|
}
|
|
}
|
|
|
|
// This registers the fonts
|
|
registerFonts()
|
|
|
|
|
|
// This code checks all the names of the fonts that have been installed. This is definitely worthwhile including the first time you install the fonts.
|
|
for family in UIFont.familyNames.sorted() {
|
|
let names = UIFont.fontNames(forFamilyName: family)
|
|
print("Family: \(family) Font names: \(names)")
|
|
}
|
|
|
|
return true
|
|
}
|
|
```
|
|
|
|
>Note that the names of these fonts can differ greatly from the filenames.
|
|
>Use the above code in the AppDelegate to check the name of the fonts.
|
|
>It will produce a similar output to the image below. The strings inside the `[]` are the names of the fonts.
|
|
> These names are what you should use in your code. Quite often they have a suffix telling you whether they are **Bold** or *Italic* etc.
|
|
|
|
![](Sources/CustomFonts/Images/FontNames.png)
|
|
|
|
### SwiftUI
|
|
|
|
Use `Font.custom(_:size:)` to use your font.
|
|
```
|
|
struct ContentView: View {
|
|
var body: some View {
|
|
VStack(spacing: 20) {
|
|
Text("Hello San Francisco")
|
|
Text("Hello BeautifulPeoplePersonalUse").font(Font.custom("BeautifulPeoplePersonalUse", size: 16))
|
|
Text("Hello VeganStylePersonalUse").font(Font.custom("VeganStylePersonalUse", size: 16))
|
|
}
|
|
}
|
|
}
|
|
```
|
|
### UIKit
|
|
```
|
|
class ViewController: UIViewController {
|
|
|
|
override func viewDidLoad() {
|
|
super.viewDidLoad()
|
|
|
|
let label = UILabel(frame: .zero)
|
|
label.text = "Hello San Francisco"
|
|
label.font = UIFont(name: "San Francisco", size: 16)
|
|
|
|
let label1 = UILabel(frame: .zero)
|
|
label1.text = "Hello BeautifulPeoplePersonalUse"
|
|
label1.font = UIFont(name: "BeautifulPeoplePersonalUse", size: 16)
|
|
|
|
let label2 = UILabel(frame: .zero)
|
|
label2.text = "Hello VeganStylePersonalUse"
|
|
label2.font = UIFont(name: "VeganStylePersonalUse", size: 16)
|
|
|
|
let stack = UIStackView(frame: .zero)
|
|
stack.axis = .vertical
|
|
stack.alignment = .center
|
|
stack.translatesAutoresizingMaskIntoConstraints = false
|
|
|
|
stack.addArrangedSubview(label)
|
|
stack.addArrangedSubview(label1)
|
|
stack.addArrangedSubview(label2)
|
|
|
|
view.addSubview(stack)
|
|
|
|
NSLayoutConstraint.activate([
|
|
stack.centerYAnchor.constraint(equalTo: view.centerYAnchor),
|
|
stack.centerXAnchor.constraint(equalTo: view.centerXAnchor)
|
|
])
|
|
}
|
|
}
|
|
```
|