UITabBarController — 标签视图控制器

UITabBarController — 标签视图控制器

UITabBarController 分为三层结构:

(1).tab bar

(2.)Custom Content

(3.). Tab bar controller View

UITabBarController 有以下重要属性:

(1).viewControls 显示的视图控制器

(2).tabBar 标签栏

(3).delegate 代理

(4).selectedindex 选中某个tabBarItme

UITabBar

(1).tabBar是UITabBar对象,包含多个UIBarItem, 每一个tabBarItem对应一个ViewController ,tabBar的高度是49

(2).当tabBarItem超过5个时,系统会自动增加一个更多按钮,点击更多按钮,没有在底部出现的那些按钮会议列表形式显示出来

UITabBar 的属性

(1).tintColor

(2).barTintColor

(3).图像设置

tabBarItem可以设置title . image . badgeValue

可以用系统的样式创建tabBarItem

1.创建一个视图控制器对象

代码:

FirstViewController *firstVC=[[FirstViewController alloc] init];

2.创建第一个naVC

代码:

UINavigationController *firstNaVC=[[UINavigationController alloc] initWithRootViewController:firstVC];

3.创建tabbar上的按钮及其内容(这种方法是系统方法)

代码:

firstVC.tabBarItem =[[[UITabBarItem alloc] initWithTabBarSystemItem:UITabBarSystemItemHistory tag:1000] autorelease];
  (1). 按钮上添加”+99”的符号
firstVC.tabBarItem.badgeValue [email protected]"+99";
  (2).用自定义的方法创建:
SecondViewController *secondVC=[[SecondViewController alloc] init];
    UINavigationController *secondNaVC=[[UINavigationController alloc] initWithRootViewController:secondVC];
    secondVC.tabBarItem =[[[UITabBarItem alloc] initWithTitle:@"朋友圈" image:[UIImage imageNamed:@"缩放.png"] selectedImage:[UIImage imageNamed:@"加号.png"]] autorelease];
 (3). 创建第三个(第三种创建方法)
    ThirdViewController *thirdVC=[[ThirdViewController alloc] init];
    UINavigationController *thirdNaVC=[[UINavigationController alloc] initWithRootViewController:thirdVC];
    thirdNaVC.tabBarItem=[[[UITabBarItem alloc] initWithTitle:@"设置" image:[UIImage imageNamed:@"加号.png"] tag:1001] autorelease];

4.按钮创建好,然后创建一个UITabBarController让所有的按钮显示出来

代码:

UITabBarController *tabVC=[[UITabBarController alloc] init];

5.tabbarController 通过一个数组来管理所有要显示出来的naVC

代码:

 tabVC.viewControllers [email protected][firstNaVC,secondNaVC,thirdNaVC,fourNaVC,fiveNaVC,sixNaVC];
self.window.rootViewController =tabVC;

6.对tabbar进行外观设置(取消透明度)

代码:

tabVC.tabBar.translucent =NO;

7.背景颜色

代码:

tabVC.tabBar.barTiniColor =[UIColormagentaColor];

8.点击之后的选中颜色

代码:

 tabVC.tabBar.tintColor=[UIColor blackColor];

9.设置代理人

代码:

tabVC.delegate=self;

10.刚开始停留的页面下标

代码:

tabVC.selectedIndex =2;

11.方法:

-(void)tabBarController:(UITabBarController *)tabBarController didSelectViewController:(UIViewController *)viewController{
 设置badageValue nil 去掉全部
viewController.tabBarItem.badgeValue=nil;
    // 或者(效果略微不同)
  @“” 还剩一个小圆点
//    [email protected]""‘

}

12.在第一个视图中创建一个TableView

tableView的高度要 减掉tabBar的高度49 和navigationBar的高度64

13.在tableview的第二个协议中的if(!cell)cell创建中,添加一个长按手势和button

代码:

if (!cell) {
        cell=[[[UITableViewCell alloc] initWithStyle:UITableViewCellStyleValue1 reuseIdentifier:reuse] autorelease];
        //在这里创建长按手势和一个button,也是为了避免重复创建,在重复使用cell的同时,也同时使用了长安手势和button按钮
        UILongPressGestureRecognizer *longPress=[[UILongPressGestureRecognizer alloc] initWithTarget:self action:@selector(click:)];
        [cell addGestureRecognizer:longPress];
        [longPress release];
        UIButton *button =[UIButton buttonWithType:UIButtonTypeSystem];
        button.frame =CGRectMake(200, 20, 100, 30);
        [button setTitle:@"点击" forState:UIControlStateNormal];
        [cell addSubview:button];

    }

14.在长按手势的方法中可以进行以下操作:

代码:

-(void)click:(UILongPressGestureRecognizer *)longPress{
    NSLog(@"111");
    // 通过手势,找到手势添加的cell
    UITableViewCell *cell = (UITableViewCell *)longPress.view;
 // 创建一个快捷菜单
    UIMenuController *menu =[UIMenuController sharedMenuController];
 // 给这个快捷菜单进行定位
    [menu setTargetRect:cell.frame inView:cell.superview];
// 让菜单可以显示出来
    [menu setMenuVisible:YES animated:YES];
  // 如果想使用自定义的功能
    UIMenuItem *flag =[[UIMenuItem alloc] initWithTitle:@"测试" action:@selector(flag)];
// 把这个按钮放到快捷菜单上
    [menu setMenuItems:@[flag]];
    // 按钮如果不实现,无论系统还是自定义,如果不实现对应的方法,不会添加到快捷菜单上

}

15.快捷菜单捆绑了一个方法,这个方法必须实现,如果不实现,快捷菜单没有办法显示

代码:

-(BOOL)canBecomeFirstResponder{
    return YES;
}

16.以下系统给定的显示快捷菜单

-(void)delete:(id)sender{
    NSLog(@"删除");
}
-(void)copy:(id)sender{
    NSLog(@"复制");
}

-(void)select:(id)sender{
    NSLog(@"选择");
}

17. 也可以添加自定义

代码:

-(void)flag{
    NSLog(@"111");
}

版权声明:本文为博主原创文章,未经博主允许不得转载。

时间: 2024-10-08 18:57:18

UITabBarController — 标签视图控制器的相关文章

iOS基础之UITabBarController(标签视图控制器)

UITabBarController是可以帮我们添加.管理许多的标签项,使我们的程序包含不同的操作模式,由于管理UITabBar可能比较麻烦,系统帮我们对其进行了封装,产生了简单好用的UITabBarController--标签视图控制器. 代码演示: #import "AppDelegate.h" #import "FirstViewController.h" #import "SecondViewController.h" #import &

iOS中的UITabBarController(标签视图控制器)

#import "AppDelegate.h" #import "FirstTableViewController.h" #import "SecondTableViewController.h" #import "ThirdTableViewController.h" #import "FourthTableViewController.h" #import "FiveTableViewCont

UITabBarController ---- 标签视图控制器

直接上代码: // // AppDelegate.m // // #import "AppDelegate.h" #import "RootViewController.h" #import "FirstViewController.h" #import "SecnodViewController.h" #import "ThirdViewController.h" @interface AppDelega

标签视图控制器UITabBarController

标签视图控制器 UITabBarController FirstViewController*first = [[FirstViewController alloc] init]; //创建一个UITableBarItem对象,作为first的 tabBarItem属性 //选中与不选中图片可以一样,可以不一样 UITabBarItem *item = [[UITabBarItem alloc] initWithTitle:@"第一" image:[UIImage imageNamed

[Xcode 实际操作]三、视图控制器-(2)UITabBarController选项卡(标签)视图控制器

本文将为你演示,选项卡视图控制器的创建和使用. 在项目文件夹[DemoApp]上点击鼠标右键,弹出右键菜单. [New File]->[Cocoa Touch Class]->[Next]-> [Class]:FirstSubViewController [Subclass of]:UIViewController [Language]:Swift ->[Next]->[Create] 1 import UIKit 2 3 class FirstSubViewControll

IOS中标签视图和Block

标签视图控制器 - UITabBarController 自定义UITabBarItem 自定义导航栏和标签栏背景图片 三个视图控制器的综合使用 一. 标签视图控制器  UITabBarController UITabBarController有以下重要属性 viewControllers   显示的视图控制器 tabBar                  标签栏 delegate                协议 tabBar 是 UITabBar对象, 包含多个UITabBarItem,

视图控制器、模态视图

一.什么是试图控制器? 视图控制器就是用来管理视图的加载.卸载.横屏竖屏显示等操作的控制器. 每一个界面都会由一个控制器来管理显示 ,单独的界面view需要视图控制器这个载体来管理显示. UIViewController是所有视图控制器的父类 . iOS提供了许多内置的视图控制器类,以支持标准的用户界面部分,比如导航控制器 (UINavigationController),标签栏控制器(UITabBarController),表视图控制器 (UITableViewController)等 . 每

集合视图控制器(CollectionViewController) 、 标签控制器(TabBarController) 、 高级控件介绍

  1 创建集合视图,设置相关属性以满足要求 1.1 问题 集合视图控制器UIConllectionViewController是一个展示大量数据的控制器,系统默认管理着一个集合视图UICollectionView,功能几乎和UITableViewController差不多,能够以多行多列的形式展示数据. 集合视图UICollectionView继承至UIScrollView,也同tableView一样有两个协议,分别是UICollectionViewDataSource数据源协议和UIColl

【iOS开发-28】制造UITabBarController标签控制器的过程以及定制UITabBarItem文字图片的6种方式

一.一个简单的创造过程(实际项目不推荐这种方式,仅做演示理解原理用) 在AppDelegate.m中: - (BOOL)application:(UIApplication *)application didFinishLaunchingWithOptions:(NSDictionary *)launchOptions { //创建一个到导航控制器 UIViewController *vc1=[[UIViewController alloc]init]; UINavigationControll