Я нахожу мало информации об использовании UINavigationItem # titleView с пользовательским шрифтом. Когда я это сделал, шрифт на панели навигации смещен по вертикали.
Эта запись частично предназначена для документирования взлома, а также для надежды, что у кого-то есть краткий ответ на эту проблему, так как я чувствую, что упускаю что-то простое.
Сначала взлом с использованием моего собственного производного класса от UILabel:
@interface NavigationItemLabel : UILabel
- (void)setFrame:(CGRect)frame;
@end
@implementation NavigationItemLabel
- (void)setFrame:(CGRect)frame {
// Called by UINavigationBar layoutSubviews.
frame.origin.y -= self.font.descender;
}
@end
По какой-то причине frame.origin.y == -11, независимо от того, какой шрифт я использую. У кого-нибудь есть какая-нибудь интуиция относительно того, почему это так?
Кажется, мне помогает добавление элемента управления моего шрифта (пользовательский шрифт Gabriola). Без этой уловки текст будет выровнен по нижней части подстрочных элементов в центре панели навигации.
Это работает не для всех шрифтов.
Есть ли у кого-нибудь лучшее решение?
Спасибо.