1234567891011121314151617181920212223242526272829303132333435363738394041424344454647484950 |
- #import "RNNLargeTitleOptions.h"
- #import "RNNTitleViewHelper.h"
-
-
- @implementation RNNLargeTitleOptions
-
- - (void)applyOn:(UIViewController *)viewController {
-
- if (@available(iOS 11.0, *)) {
-
- viewController.navigationItem.largeTitleDisplayMode = UINavigationItemLargeTitleDisplayModeNever;
-
- if ([self.visible boolValue]){
- viewController.navigationController.navigationBar.prefersLargeTitles = YES;
- viewController.navigationItem.largeTitleDisplayMode = UINavigationItemLargeTitleDisplayModeAlways;
- } else {
- viewController.navigationController.navigationBar.prefersLargeTitles = NO;
- }
-
- NSDictionary* fontAttributes = [self fontAttributes];
- viewController.navigationController.navigationBar.largeTitleTextAttributes = fontAttributes;
- }
- }
-
- - (NSDictionary *)fontAttributes {
- NSMutableDictionary* navigationBarTitleTextAttributes = [NSMutableDictionary new];
- if (self.fontFamily || self.fontSize || self.color) {
- if (self.color) {
- navigationBarTitleTextAttributes[NSForegroundColorAttributeName] = [RCTConvert UIColor:self.color];
- }
- if (self.fontFamily){
- if (self.fontSize) {
- navigationBarTitleTextAttributes[NSFontAttributeName] = [UIFont fontWithName:self.fontFamily size:[self.fontSize floatValue]];
- } else {
- navigationBarTitleTextAttributes[NSFontAttributeName] = [UIFont fontWithName:self.fontFamily size:20];
- }
- } else if (self.fontSize) {
- navigationBarTitleTextAttributes[NSFontAttributeName] = [UIFont systemFontOfSize:[self.fontSize floatValue]];
- }
- }
-
- return navigationBarTitleTextAttributes;
- }
-
- - (NSNumber *)fontSize {
- return _fontSize ? _fontSize : nil;
- }
-
- @end
|