加入收藏 | 设为首页 | 会员中心 | 我要投稿 李大同 (https://www.lidatong.com.cn/)- 科技、建站、经验、云计算、5G、大数据,站长网!
当前位置: 首页 > 百科 > 正文

ios – 如何为一个视图控制器设置UINavigation栏的titletextattr

发布时间:2020-12-14 17:31:33 所属栏目:百科 来源:网络整理
导读:我正在尝试更改我的一个视图控制器的字体大小,因为它适用于更多文本,因此需要比我的其他视图更小的字体大小.我在didFinishLaunchingWithOptions期间在appdelegate中设置导航栏属性,然后在viewDidLoad期间为我的视图控制器设置字体.但是,当我返回屏幕或向前时
我正在尝试更改我的一个视图控制器的字体大小,因为它适用于更多文本,因此需要比我的其他视图更小的字体大小.我在didFinishLaunchingWithOptions期间在appdelegate中设置导航栏属性,然后在viewDidLoad期间为我的视图控制器设置字体.但是,当我返回屏幕或向前时,我保留对导航栏所做的更改,即较小的字体.有没有解决的办法?例如,在退出视图时将字体设置回正常状态?

Cliffsnotes:尝试在一个视图控制器中设置字体,但是一旦我设置它,它就适用于所有视图控制器.

代码如下:

在AppDelegate中:

[[UINavigationBar appearance] setBackgroundImage:[UIImage imageNamed:@"navbar.png"] forBarMetrics:UIBarMetricsDefault];
[[UINavigationBar appearance] setTitleTextAttributes:
 [NSDictionary dictionaryWithObjectsAndKeys:
  [UIColor clearColor],UITextAttributeTextColor,[UIColor whiteColor],UITextAttributeTextShadowColor,[NSValue valueWithUIOffset:UIOffsetMake(0,-1)],UITextAttributeTextShadowOffset,[UIFont fontWithName:@"QuicksandBold-Regular" size:24.0],UITextAttributeFont,nil]];

在视图控制器viewDidLoad中:

[self.navigationController.navigationBar setTitleTextAttributes:[NSDictionary dictionaryWithObjectsAndKeys:
                                                                     [UIColor clearColor],[UIFont fontWithName:@"QuicksandBold-Regular" size:18.0],nil]];

解决方法

导航控制器中的所有视图控制器共享导航栏.因此,一旦更改了导航栏,同一导航堆栈中的所有视图控制器都将受到影响.一种选择是为这个视图控制器设置自定义titleView.

self.navigationItem.titleView = ... // some UILabel with the desired formatting

这样,只有一个视图控制器显示自定义标题.

另一种选择是在视图控制器的viewWillAppear方法中更改导航栏的外观,然后在视图控制器的viewWillDisappear方法中重置它.但是这种方法可能不像使用自定义titleView那样顺畅.

(编辑:李大同)

【声明】本站内容均来自网络,其相关言论仅代表作者个人观点,不代表本站立场。若无意侵犯到您的权利,请及时与联系站长删除相关内容!

    推荐文章
      热点阅读