tabBarController 的隐藏问题

本文提供了一段Objective-C代码片段,用于在iOS应用中根据屏幕尺寸动态调整导航栏和状态栏的高度,进而调整视图的布局。通过判断设备型号,设置合适的窗口高度,最终实现导航栏与状态栏的隐藏或显示,确保应用界面在不同设备上的一致性和美观性。

- (void)hideTabbar:(BOOL)hidden {

    

//  CGRect windowFrame = iPhone5 ? CGRectMake(0.0f, 0.0f, 320.0f, 568.0f) : CGRectMake(0.0f, 0.0f, 320.0f, 480.0f);

   CGRect windowFrame=[[UIScreenmainScreen]bounds ];

//     CGRect windowFrame = CGRectMake(0.0f, 0.0f, 768.0f, 1024.0f);

   float windowHeight = windowFrame.size.height;

   if(hidden) {

       CGRect newFrame = windowFrame;

        newFrame.size.height -=navHeight + statusBarHeight;

       self.view.frame = newFrame;

    }

   else {

       CGRect newFrame = windowFrame;

        newFrame.size.height -=tabBarHeight + navHeight +statusBarHeight;

       self.view.frame = newFrame;

    }

    viewWidth =self.view.frame.size.width;

    viewHeight =self.view.frame.size.height;

   

    

    [UIViewbeginAnimations:nilcontext:NULL];

    [UIViewsetAnimationDuration:0];

   //这个位子给大家注视一下, 获取self.tabBarC中的UItabBar在对其进行隐藏操作

    for(UIView *viewin self.tabBarController.view.subviews){

        

       if([view isKindOfClass:[UITabBar class]]){  

           if (hidden) {

                [viewsetFrame:CGRectMake(view.frame.origin.x, windowHeight, view.frame.size.width, view.frame.size.height)];

            }else {

                [viewsetFrame:CGRectMake(view.frame.origin.x, windowHeight -tabBarHeight, view.frame.size.width, view.frame.size.height)];

            }

        }else{   

           if (hidden) {

                [viewsetFrame:CGRectMake(view.frame.origin.x, view.frame.origin.y, view.frame.size.width, windowHeight)];

            }else {

                [viewsetFrame:CGRectMake(view.frame.origin.x, view.frame.origin.y, view.frame.size.width, windowHeight -tabBarHeight)];

            }

        }

    }

    [UIViewcommitAnimations];

}

感谢 www.fanmoney.cn站长的支持。 又效果的话bu要忘记了答谢我们的站长的哦 。 进站多关照关照
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值