`

UITabBarController uitabbar

    博客分类:
  • ios
 
阅读更多

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 {

returnYES;

}

@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{

 

[UIViewbeginAnimations:nilcontext:NULL];

[UIViewsetAnimationDuration:0];

 

 

for(UIView *viewinself.tabBarController.view.subviews){

 

if([viewisKindOfClass:[UITabBarclass]]){   //处理UITabBar视图

if (hidden) {

 

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

} else {

[viewsetFrame:CGRectMake(view.frame.origin.x, 480-48, 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,480)];

 

} else {

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

}

}

}

 

[UIViewcommitAnimations];

}

分享到:
评论

相关推荐

    iphone开发基础控件UITabBar及UITabBarController

    iphone中的基础控件UITabBar及UITabBarController,适合初学者,主要学习UITabBarController的常用属性设置及其点击事件。 1、UITabBarController是一个容器,一般作为整个程序的rootViewController,容器包含多个...

    UItabbarController 简单使用Demo

    `UITabBarController`会自动创建一个`UITabBar`对象,这个`UITabBar`就是我们在屏幕底部看到的一排tab按钮。 实现`UITabBarController`的简单步骤如下: 1. **创建子视图控制器**:首先,你需要创建至少两个`...

    iOS UITabBarController(自定义, tarBar中间有自定义按钮)

    在本案例中,我们将深入探讨如何进行`UITabBarController`的基本设置以及如何自定义`UITabBar`,特别是在`tabBar`中间添加自定义按钮。 首先,让我们了解`UITabBarController`的基础知识。`UITabBarController`是`...

    自定义带圆弧的UITabBar

    1.自定义中间带弧度的UITabBar(参照代码思路可改成其它形状)。 2.TabBar保留系统原有push和pop过渡效果。 3.由于自定义了UITabBar所以就连同TabBarController也一同定义了(用法和系统的很类似)。

    swift——自定义UITabBar,UITabBarController和UINavigationController

    自定义UITabBar,layoutSubviews重写UITabBarButton位置,重写则hitTest方法并监听按钮的点击 自定义的UITabBarController和UINavigationController

    animation-uitabbar-hiding:隐藏UITabBarController的UITabBar动画函数

    UITabBar动画隐藏用法: tabBarController ? . tabBar . isTranslucent = truetabBarController ? . setTabBarHidden ( true , animated : true )

    iOS 自定义UITabBar中间按钮(OC版)

    UITabBarController *tabBarController = [[UITabBarController alloc] init]; tabBarController.viewControllers = viewControllers; YLTabBar *customTabBar = [[YLTabBar alloc] init]; tabBarController....

    IOS UITabBarController 使用示例

    本篇文章将深入讲解如何使用 `UITabBarController`,包括设置自定义的 `UITabBar` 和管理 `UITabBarItem`。 首先,我们来了解 `UITabBarController` 的基本使用。在Xcode中创建一个新的项目,选择"Single View App...

    iOS UITabBar创建

    `UITabBar`与`UITabBarController`紧密配合,为用户提供多个可切换的视图控制器,每个视图控制器代表一个单独的屏幕或功能区域。 `UITabBarItem`是`UITabBar`中的每个项目,它代表了一个可点击的图标和标签,用于...

    自定义UITabBarController的demo

    在iOS开发中,`UITabBarController`是苹果提供的一个用于实现底部标签导航的控制器,它默认提供了基础的样式和功能。然而,系统默认的`UITabBar`有时不能满足开发者对于界面个性化的需求,这就需要我们对其进行...

    自定义动画效果的UITabBar

    在iOS应用开发中,`UITabBar` 是一个标准组件,用于展示多个主要功能选项,用户可以通过点击不同的标签在各个页面之间切换。然而,系统默认的`UITabBar`样式可能无法满足所有设计需求,因此开发者经常需要自定义`...

    自定义UITabBarController

    这通常通过监听`UITabBar`的`itemSelected`通知或重写`UITabBarController`的`selectedIndex`属性来实现。 6. **动画效果**:自定义动画可以让切换更加生动。可以利用`UIView`的动画API,比如`UIView.animate...

    UITabBar和UINavigation组合使用

    每个 `UITabBarItem` 对应一个 `UIViewController`,并且可以通过 `UITabBarController` 进行管理。 接着,我们来探讨 `UINavigationController`。`UINavigationController` 是一个容器控制器,它维护了一个页面栈...

    ios-uitabbarcontroller的封装.zip

    在iOS应用开发中,`UITabBarController` 是一个非常重要的组件,它用于管理多个`UIViewController`实例,并在底部展示一个带有多个选项卡的导航栏。`UITabBarController`的封装通常是为了实现更灵活的定制、更好的...

    iphone 水平滚动的UITabBar Demo

    在iOS应用开发中,`UITabBar`是苹果提供的一个标准组件,用于在底部展示多个选项卡,用户可以通过点击选项卡在不同的视图之间切换。然而,标准的`UITabBar`是固定的,通常只能容纳有限数量的标签,并且它们默认是...

    UITabBarController Demo代码

    在iOS应用开发中,`UITabBarController` 是一个至关重要的组件,它负责管理多个子控制器,每个子控制器对应Tab栏上的一个标签。`UITabBarController` 提供了用户友好的界面,让用户能够轻松地在不同的功能之间切换。...

    ios自定义UITabBarController

    在iOS应用开发中,`UITabBarController` 是一个非常重要的组件,它用于管理多个视图控制器,并在底部显示一个选项卡栏,用户可以通过点击这些选项卡在不同的视图之间切换。然而,系统的`UITabBarController` 默认...

    ios-自定义UITabBarController.zip

    3. **方法重写与添加**:通常,我们会重写`UITabBarController`的一些默认行为,如`- (void)tabBar:(UITabBar *)tabBar didSelectItem:(UITabBarItem *)item` 方法,以便在用户点击标签时执行自定义操作。...

    UITabBarController和UINavigationController混用

    本示例主要讲解如何在使用 `UITabBarController` 的同时,灵活地管理和隐藏 `UITabBar`。 首先,`UITabBarController` 是一个容器控制器,它可以包含多个子视图控制器,每个子视图控制器对应一个 tab 标签。在创建 ...

Global site tag (gtag.js) - Google Analytics