当我的应用程序切换到横向时,我正在调整导航栏的大小。 但我无法根据导航栏的高度设置导航栏的内容大小。
Landscape image: - 在此图片中,左上角的条形项和导航栏的标题在切换到横向时不会调整大小......它们应根据导航栏的高度重新调整大小。
请建议我有任何想法吗?
感谢
迪皮卡乌达
答案 0 :(得分:1)
覆盖方法:
- (UIView *)rotatingHeaderView
{
return yourNavigationBar;
}
当您的设备方向发生时,将调用此方法。
-(BOOL)shouldAutorotateToInterfaceOrientation:(UIInterfaceOrientation)interfaceOrientation
{
if(mainLoginView.superview == self.view || modulesView.superview == self.view)
{
return NO;
}
else
{
return YES;
}
}
用你的代码替换这个方法并回复我会发生什么:)
答案 1 :(得分:0)
我正在使用这种委托方法: -
-(BOOL)shouldAutorotateToInterfaceOrientation:(UIInterfaceOrientation)interfaceOrientation{
if(mainLoginView.superview == self.view || modulesView.superview == self.view){
return NO;
}else{
[self rotateTheNavigation:contactsNavigation withOrientation:interfaceOrientation];
return (interfaceOrientation == UIInterfaceOrientationPortrait);
}
}
答案 2 :(得分:0)
如果您需要重新计算观看次数,最好将代码放入
-
(void)willAnimateRotationToInterfaceOrientation:(UIInterfaceOrientation)toInterfaceOrientation
duration:(NSTimeInterval)duration
,-(void)
didRotateFromInterfaceOrientation:(UIInterfaceOrientation)fromInterfaceOrientation
shouldAutorotateToInterfaceOrientation只应该回答这个问题:“这个视图控制器应该旋转还是不旋转?”。
例如:
- (void)willAnimateRotationToInterfaceOrientation:(UIInterfaceOrientation)toInterfaceOrientation duration:(NSTimeInterval)duration {
// Get the new screen width
self.cellWidth = self.view.frame.size.width;
// Recalculate the view
[self rebuildTheView];
}
在大多数情况下,如果在Interface Builder中设置正确的调整大小设置,则在所有ViewController中实现shouldAutorotate就足够了。在实现didRotateFromInterfaceOrientation或willAnimateRotationToInterfaceOrientation
之前检查是否已执行此操作例如:
- (BOOL)shouldAutorotateToInterfaceOrientation:(UIInterfaceOrientation)interfaceOrientation
{
return [ViewToolkit orientationIsSupported:interfaceOrientation];
}