我有一个 UIViewController 的子类,它处理 UIView。视图控制器以模态方式呈现(它从屏幕底部向上滑动)。在视图的顶部,我添加了一个导航栏。请注意,该栏不是由导航控制器处理的。
我想让导航栏在视图旋转到横向时缩小高度(类似于 UINavigationController 处理它时的行为)。但是,我无法在 IB 中将其自动调整大小掩码设置为灵活高度,并且在代码中这样做会导致导航栏完全消失。
有没有办法做到这一点? UINavigationController 是如何完成的?
附:我宁愿不必诉诸缩放变换,因为这会弄乱标题中的文本。
编辑:我在一点帮助下解决了这个问题,请阅读下面发布的答案。
为什么不直接检查 viewWillAppear 以及 didRotateFromInterfaceOrientation 中的当前方向,并设置适当的框架,而不是设置它的自动调整大小蒙版?
- (void) updateNavBar {
UIInterfaceOrientation orientation = [[UIApplication sharedApplication] statusBarOrientation];
if ((UIInterfaceOrientationLandscapeLeft == orientation) ||
(UIInterfaceOrientationLandscapeRight == orientation)) {
myNavBar.frame = CGRectMake(0, 0, 480, 34);
} else {
myNavBar.frame = CGRectMake(0, 0, 320, 44);
}
}
- (void) viewWillAppear {
[self updateNavBar];
// ... SNIP ...
}
- (void)didRotateFromInterfaceOrientation:(UIInterfaceOrientation)fromInterfaceOrientation {
[self updateNavBar];
// ... SNIP ...
}
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)