我找到关于使用自定义字体使用UINavigationItem#titleView的一些信息.当我这样做时,导航栏中的字体垂直未对齐.
这个条目部分是为了记录黑客,也希望有人对这个问题有一个简洁的答案,因为我觉得我错过了一些简单的东西.
首先是hack,使用我自己的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
Run Code Online (Sandbox Code Playgroud)
出于某种原因,无论我使用什么字体,frame.origin.y == -11.有没有人对这是为什么有任何直觉?
添加我的字体的下行器(称为Gabriola的自定义字体)似乎有所帮助.如果没有这种黑客攻击,文本将与导航栏中心下降部分的底部对齐.
这不适用于所有字体.
有没有人有更好的解决方案?
谢谢.