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];

      }

  • 相关阅读:
    gym102215题解
    Codeforces6E_Exposition
    Codeforces893F_Subtree Minimum Query
    是男人就过八题A_A String Game
    gym101666题解
    gym102201E_Eat Economically
    gym102346题解
    C++输入函数用法
    迷宫问题(BFS+保存路径) POJ No.3984
    【BFS】迷宫的最短路径问题
  • 原文地址:https://www.cnblogs.com/jiangshiyong/p/3171384.html
Copyright © 2011-2022 走看看