Использование UIAppearance для изменения высоты надписи - PullRequest
2 голосов
/ 15 октября 2011

Есть ли способ использовать UIAppearance для изменения высоты метки внутри UINavigationBar.Вот код и изображение того, что происходит, чтобы вы могли понять, в чем проблема.

[[UINavigationBar appearance] setTitleVerticalPositionAdjustment:-5.0 forBarMetrics:UIBarMetricsDefault];
[[UINavigationBar appearance] setTitleVerticalPositionAdjustment:-5.0 forBarMetrics:UIBarMetricsLandscapePhone];

NSDictionary *textAttributes =  [NSDictionary dictionaryWithObjects:[NSArray arrayWithObjects:[UIFont fontWithName:@"MarketingScript" size:34.0], nil] 
                                                            forKeys:[NSArray arrayWithObjects:UITextAttributeFont, nil]];

enter image description here

Ответы [ 2 ]

1 голос
/ 24 ноября 2011

Я решил эту проблему, создав собственный UIView:

+(NavigationBarTitleLabel *)titleLabelWithTitle:(NSString *)title {
  // this will appear as the title in the navigation bar
  NavigationBarTitleLabel *labelWrapper = [[NavigationBarTitleLabel alloc] initWithFrame:CGRectMake(0, 0, 200, 34)];
  UILabel *label = [[UILabel alloc] initWithFrame:CGRectMake(0, 8, 200, 32)];

  label.font            = [UIFont fontWithName:@"MarketingScript" size:28.0];
  label.text            = title;
  label.textColor       = XHEXCOLOR(0XFFFFFF);
  label.textAlignment   = UITextAlignmentCenter;
  label.backgroundColor = [UIColor clearColor];
  label.layer.shadowColor = [UIColor blackColor].CGColor;
  label.layer.shadowRadius = 2;
  [labelWrapper addSubview:label];
  [labelWrapper sizeToFit];

  return labelWrapper;
}

, а затем задайте свойство titleView для навигационного элемента:

self.navigationItem.titleView = [NavigationBarTitleLabel titleLabelWithTitle:self.title];
0 голосов
/ 18 октября 2011

Вероятно, вы можете получить UIAppearance для UILabel внутри UINavigationBar.

...