1、默认的UITabBarController不支持四个方向,但可以给UITabBarController增加一个类别,实现旋转;具体做法:
在工程添加一个.h和.m文件如下:
//Rotation.h
#import <Foundation/Foundation.h>
@interface UITabBarController(Rotation)
- (BOOL)shouldAutorotateToInterfaceOrientation:(UIInterfaceOrientation)interfaceOrientation;
@end
#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,适合初学者,主要学习UITabBarController的常用属性设置及其点击事件。 1、UITabBarController是一个容器,一般作为整个程序的rootViewController,容器包含多个...
`UITabBarController`会自动创建一个`UITabBar`对象,这个`UITabBar`就是我们在屏幕底部看到的一排tab按钮。 实现`UITabBarController`的简单步骤如下: 1. **创建子视图控制器**:首先,你需要创建至少两个`...
在本案例中,我们将深入探讨如何进行`UITabBarController`的基本设置以及如何自定义`UITabBar`,特别是在`tabBar`中间添加自定义按钮。 首先,让我们了解`UITabBarController`的基础知识。`UITabBarController`是`...
1.自定义中间带弧度的UITabBar(参照代码思路可改成其它形状)。 2.TabBar保留系统原有push和pop过渡效果。 3.由于自定义了UITabBar所以就连同TabBarController也一同定义了(用法和系统的很类似)。
自定义UITabBar,layoutSubviews重写UITabBarButton位置,重写则hitTest方法并监听按钮的点击 自定义的UITabBarController和UINavigationController
UITabBar动画隐藏用法: tabBarController ? . tabBar . isTranslucent = truetabBarController ? . setTabBarHidden ( true , animated : true )
UITabBarController *tabBarController = [[UITabBarController alloc] init]; tabBarController.viewControllers = viewControllers; YLTabBar *customTabBar = [[YLTabBar alloc] init]; tabBarController....
本篇文章将深入讲解如何使用 `UITabBarController`,包括设置自定义的 `UITabBar` 和管理 `UITabBarItem`。 首先,我们来了解 `UITabBarController` 的基本使用。在Xcode中创建一个新的项目,选择"Single View App...
`UITabBar`与`UITabBarController`紧密配合,为用户提供多个可切换的视图控制器,每个视图控制器代表一个单独的屏幕或功能区域。 `UITabBarItem`是`UITabBar`中的每个项目,它代表了一个可点击的图标和标签,用于...
在iOS开发中,`UITabBarController`是苹果提供的一个用于实现底部标签导航的控制器,它默认提供了基础的样式和功能。然而,系统默认的`UITabBar`有时不能满足开发者对于界面个性化的需求,这就需要我们对其进行...
在iOS应用开发中,`UITabBar` 是一个标准组件,用于展示多个主要功能选项,用户可以通过点击不同的标签在各个页面之间切换。然而,系统默认的`UITabBar`样式可能无法满足所有设计需求,因此开发者经常需要自定义`...
这通常通过监听`UITabBar`的`itemSelected`通知或重写`UITabBarController`的`selectedIndex`属性来实现。 6. **动画效果**:自定义动画可以让切换更加生动。可以利用`UIView`的动画API,比如`UIView.animate...
每个 `UITabBarItem` 对应一个 `UIViewController`,并且可以通过 `UITabBarController` 进行管理。 接着,我们来探讨 `UINavigationController`。`UINavigationController` 是一个容器控制器,它维护了一个页面栈...
在iOS应用开发中,`UITabBarController` 是一个非常重要的组件,它用于管理多个`UIViewController`实例,并在底部展示一个带有多个选项卡的导航栏。`UITabBarController`的封装通常是为了实现更灵活的定制、更好的...
在iOS应用开发中,`UITabBar`是苹果提供的一个标准组件,用于在底部展示多个选项卡,用户可以通过点击选项卡在不同的视图之间切换。然而,标准的`UITabBar`是固定的,通常只能容纳有限数量的标签,并且它们默认是...
在iOS应用开发中,`UITabBarController` 是一个至关重要的组件,它负责管理多个子控制器,每个子控制器对应Tab栏上的一个标签。`UITabBarController` 提供了用户友好的界面,让用户能够轻松地在不同的功能之间切换。...
在iOS应用开发中,`UITabBarController` 是一个非常重要的组件,它用于管理多个视图控制器,并在底部显示一个选项卡栏,用户可以通过点击这些选项卡在不同的视图之间切换。然而,系统的`UITabBarController` 默认...
3. **方法重写与添加**:通常,我们会重写`UITabBarController`的一些默认行为,如`- (void)tabBar:(UITabBar *)tabBar didSelectItem:(UITabBarItem *)item` 方法,以便在用户点击标签时执行自定义操作。...
本示例主要讲解如何在使用 `UITabBarController` 的同时,灵活地管理和隐藏 `UITabBar`。 首先,`UITabBarController` 是一个容器控制器,它可以包含多个子视图控制器,每个子视图控制器对应一个 tab 标签。在创建 ...