2

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

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

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

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

我正在为 iOS 5 开发。

4

1 回答 1

1

在可见视图控制器中使用这两种方法之一设置您的属性,以根据设备当前所处的方向修改您的代码。您的视图控制器将需要一个指向 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 语句,如果设备是垂直的,则将标题属性设置为一种样式,否则设置为另一种样式,因为设备是水平的。

于 2012-05-29T21:35:34.350 回答