mirror of
https://github.com/material-components/material-components-ios.git
synced 2026-02-20 08:27:32 +08:00
71 lines
2.2 KiB
Markdown
71 lines
2.2 KiB
Markdown
### Custom Fonts
|
|
Material Components for iOS allows you to set your own font for all of the components. Use the class
|
|
method `setFontLoader:` on MDCTypography to specify a loader that conforms to the
|
|
`MDCTypographyFontLoading` protocol.
|
|
|
|
If you want to use the system font use `MDCSystemFontLoader` which already conforms to the
|
|
`MDCTypographyFontLoading` protocol. It is used if no font loader is set.
|
|
|
|
<!--<div class="material-code-render" markdown="1">-->
|
|
#### Swift
|
|
```swift
|
|
class CustomFontLoader: NSObject, MDCTypographyFontLoading {
|
|
func regularFont(ofSize fontSize: CGFloat) -> UIFont {
|
|
// Consider using MDFFontDiskLoader to register your font.
|
|
return UIFont.init(name: "yourCustomRegularFont", size: fontSize)!
|
|
}
|
|
func mediumFont(ofSize fontSize: CGFloat) -> UIFont {
|
|
// Consider using MDFFontDiskLoader to register your font.
|
|
return UIFont.init(name: "yourCustomMediumFont", size: fontSize)!
|
|
}
|
|
func lightFont(ofSize fontSize: CGFloat) -> UIFont {
|
|
// Consider using MDFFontDiskLoader to register your font.
|
|
return UIFont.init(name: "yourCustomLightFont", size: fontSize)!
|
|
}
|
|
}
|
|
|
|
...
|
|
|
|
func application(_ application: UIApplication, didFinishLaunchingWithOptions launchOptions: [UIApplicationLaunchOptionsKey: Any]?) -> Bool {
|
|
|
|
// Before any UI is called
|
|
MDCTypography.setFontLoader(CustomFontLoader())
|
|
|
|
}
|
|
```
|
|
|
|
#### Objective-C
|
|
|
|
```objc
|
|
@interface CustomFontLoader : NSObject <MDCTypographyFontLoading>
|
|
@end
|
|
|
|
@implementation CustomFontLoader
|
|
|
|
- (UIFont *)regularFontOfSize:(CGFloat)fontSize {
|
|
// Consider using MDFFontDiskLoader to register your font.
|
|
return [UIFont fontWithName:@"yourCustomRegularFont" size:fontSize];
|
|
}
|
|
|
|
- (UIFont *)mediumFontOfSize:(CGFloat)fontSize {
|
|
// Consider using MDFFontDiskLoader to register your font.
|
|
return [UIFont fontWithName:@"yourCustomMediumFont" size:fontSize];
|
|
}
|
|
|
|
- (UIFont *)lightFontOfSize:(CGFloat)fontSize {
|
|
// Consider using MDFFontDiskLoader to register your font.
|
|
return [UIFont fontWithName:@"yourCustomLightFont" size:fontSize];
|
|
}
|
|
|
|
@end
|
|
|
|
...
|
|
|
|
- (BOOL)application:(UIApplication *)application
|
|
didFinishLaunchingWithOptions:(NSDictionary *)launchOptions {
|
|
// Before any UI is called
|
|
[MDCTypography setFontLoader:[[CustomFontLoader alloc] init]];
|
|
}
|
|
```
|
|
<!--</div>-->
|