我在AppDelegate didFinishLaunchingWithOptions中使用以下代码更改了UINavigationBar标题的字体:

[[UINavigationBar appearance] setTitleTextAttributes:
  [NSDictionary dictionaryWithObjectsAndKeys: [UIFont fontWithName:@"Arial-BoldMT" size:24.0], UITextAttributeFont, nil]];


纵向可以,但是在横向字体太大。
旋转设备后是否可以更改字体大小?

我想我可以使用自定义的titleView解决此问题,但是我想知道是否还有其他选择(没有在纵向/一般情况下将尺寸设置为较小的数字:))?

我正在为iOS 5开发。

最佳答案

使用可见视图控制器中的这两种方法之一来设置属性,以根据设备当前所处的方向来修改代码。视图控制器将需要一个指向UINavigationController变量的指针。

在视图旋转之前调用的方法:
- (void)willRotateToInterfaceOrientation:(UIInterfaceOrientation)toInterfaceOrientation duration:(NSTimeInterval)duration

视图旋转后立即调用的方法:

- (void)didRotateFromInterfaceOrientation:(UIInterfaceOrientation)fromInterfaceOrientation

有关ViewController方法的更多信息,可以在这里找到:

http://developer.apple.com/library/ios/#DOCUMENTATION/UIKit/Reference/UIViewController_Class/Reference/Reference.html

我认为最简单的方法是使用if语句,如果设备是verticle,则将title属性设置为一种样式,否则将其设置为另一种样式,因为设备是水平的。

关于iphone - UINavigationBar:旋转后更改标题大小,我们在Stack Overflow上找到一个类似的问题:https://stackoverflow.com/questions/10806960/

10-10 18:40
查看更多