使用titleTextAttributes时,UINavigationbar标题被截断

Ste*_*hen 15 uinavigationcontroller

我的iPhone应用程序有一个标签栏控制器,在每个标签上(4个标签)有一个UINavigationController,我希望它是一个不同的颜色,并改变标题上的字体,所以我使自己的自定义导航控制器在任何地方使用所以这些更改只有一个地方.色调很简单,工作正常,但是当我尝试使用setTitleTextAttributes设置字体时,它会更改字体,但在某些视图中,标题显示最后被截断(即"我的标题...").如果我更改视图然后返回带有截断标题的视图,标题确实会正确显示.

目前我的自定义UINavigationController中的viewDidLoad具有:

UIFont *font = [UIFont fontWithName:@"GillSans-Bold" size:22];
NSDictionary *attr = [[NSDictionary alloc] initWithObjectsAndKeys:font, UITextAttributeFont, nil];
[self.navigationBar setTitleTextAttributes:attr];
Run Code Online (Sandbox Code Playgroud)

我的想法是它正在改变titleView的字体,但它没有根据新的大小调整大小(因为它是一个更大的字体).另一个问题是,当手机转向横向时,任何挂低(g,p,y)的字母都会将底部切断.有没有办法调整标签大小或允许设置minimumFontSize,以便文本在太大时简单缩小?

Haz*_*azA 3

这对我有用

- (void)viewWillAppear:(BOOL)animated {
    [super viewWillAppear:animated];
    [self setTitle:self.station.title];
    UILabel *label = [[UILabel alloc] initWithFrame:CGRectMake(0, 0, 400, 44)];
    label.backgroundColor = [UIColor clearColor];
    [label setFont:[UIFont fontWithName:@"GillSans-Bold" size:24.0]];
    label.textAlignment = UITextAlignmentCenter;
    label.textColor = [UIColor whiteColor];
    label.adjustsFontSizeToFitWidth = YES;
    label.text = self.title;    
    self.navigationItem.titleView = label;
}
Run Code Online (Sandbox Code Playgroud)