zoukankan      html  css  js  c++  java
  • UITabBarController支持旋转

    1、默认的UITabBarController不支持四个方向,但可以给UITabBarController增加一个类别,实现旋转;具体做法:

         在工程添加一个.h和.m文件如下:

    //Rotation.h 

    #import <Foundation/Foundation.h>

    @interface UITabBarController(Rotation)

    - (BOOL)shouldAutorotateToInterfaceOrientation:(UIInterfaceOrientation)interfaceOrientation;

    @end

     
    //Rotation.m

    #import "Rotation.h"

    @implementation UITabBarController(Rotation)

    - (BOOL)shouldAutorotateToInterfaceOrientation:(UIInterfaceOrientation)interfaceOrientation {

    return YES;

    }

    @end

    重新编译,运行后UITabBarController就可以支持四个方向了;

    2、进一步,如果UITabBarController包含多个ViewController,如A,B,C三个;但我们只想A,B,支持四个方向,而C只支持一个方向,则在

    //Rotation.m 

    #import "Rotation.h"

    @implementation UITabBarController(Rotation)

    - (BOOL)shouldAutorotateToInterfaceOrientation:(UIInterfaceOrientation)interfaceOrientation {

      if([[self selectedViewController] isKindOfClass:[C class]]){

        return NO;

      }

      return YES;

    }

    @end

    3、隐藏底边的UITabBar

         (1)假如你在某一个ViewController中隐藏UITabBar,则可以在该控制器中添加下面的函数

      - (void)viewDidAppear:(BOOL)animated{

         self.hidesBottomBarWhenPushed = YES; 

      }

        (2)为了将某个视图全屏显示,而隐藏UITabBar,添加下面的函数

       - (void)HideTabBar:(BOOL)hidden{

        [UIView beginAnimations:nil context:NULL];

        [UIView setAnimationDuration:0];

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

           if([view isKindOfClass:[UITabBar class]]){   //处理UITabBar视图

            if (hidden) { 

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

            } else {

              [view setFrame:CGRectMake(view.frame.origin.x, 480-48,         view.frame.size.width,view.frame.size.height)];

           }

        }else{   //处理其它视图

            if (hidden) {

            [view setFrame:CGRectMake(view.frame.origin.x,view.frame.origin.y,

    view.frame.size.width,480)];

            } else {

            [view setFrame:CGRectMake(view.frame.origin.x, view.frame.origin.y,view.frame.size.width,480-48)];

            }

         }

        }

        [UIView commitAnimations];

      }

  • 相关阅读:
    [Err] 1064
    maven项目警告: Using platform encoding (UTF-8 actually) to copy filtered resources
    maven中引入oracle驱动报错Missing artifact com.oracle:ojdbc14:jar:10.2.0.4.0
    springMVC 中url后缀使用html,不能返回json数据,否则会报406错误
    网站并发量的计算方法
    win7旗舰版显示不了文件扩展名
    Java获取mysql数据库元数据
    spring中 context:property-placeholder 导入多个独立的 .properties配置文件
    Could not autowire field: private java.lang.Integer com.taotao.sso.service.impl.UserServiceImpl.SSO_
    linux Nginx服务开机自启
  • 原文地址:https://www.cnblogs.com/jiangshiyong/p/3171384.html
Copyright © 2011-2022 走看看