如果我使用UINavigationController来显示我的UINavigationBar,那么在横屏模式下,这个导航栏会比竖屏模式下更窄。到目前为止一切都很好,因为我想要这种行为,但是我有一个视图没有被UINavigationController处理,所以我只是从Interface Builder中拖放了一个UINavigationBar到视图中,但这个导航栏始终保持相同的大小,我看不到任何方法告诉UINavigationBar它应该调整大小。有人知道如何实现吗?
你可以在UIView的layoutSubviews方法中调整导航栏的大小,代码如下:
- (void)layoutSubviews {
[super layoutSubviews];
// Let navBar tell us what height it would prefer at the current orientation
CGFloat navBarHeight = [navBar sizeThatFits:self.bounds.size].height;
// Resize navBar
navBar.frame = CGRectMake(0, 0, self.bounds.size.width, navBarHeight);
}