文档章节

自定义标签栏控制器

不孤独的美食家
 不孤独的美食家
发布于 2015/09/06 19:35
字数 614
阅读 54
收藏 0

                                      第一部分 准备工作

 新建一个工程,创建五个我们所需的控制器,都继承自UIViewController

点击进入main.storyboard,把原来的控制器删除,拖入一个UITabBarController,再分别拖入五个导航栏控制器,在把导航栏右边的UITableViewController删除,拖入一个普通的UIViewController,再点击UIViewController,如图

在属性栏中,将他们的实现类依次填上我们刚刚创建的五个控制器类就行了

填好之后,整个界面如图(由于图太大,只截取了一部分)

好啦,到这里,准备工作已经完结。 

  

                                       第二部分   代码创建部分

创建一个自定义的标签栏控制器,让他继承自UItabBarController

自定义标签栏控制器的步骤

1 初始化底部标签栏的背景图

2 初始化标签栏上的按钮

3 初始化默认指向的按钮

代码如下

//  Created by 妖精的尾巴 on 15-9-6.

//  Copyright (c) 2015 妖精的尾巴. All rights reserved.

//


#import "LHTabBarController.h"

#import "LHButton.h"

#import "UIView+Extesion.h"


#define kScreenWidth    [UIScreen mainScreen].bounds.size.width

#define TabarHeight      49


@interface LHTabBarController ()

/**

 *标签栏底部的自定义背景

 */

@property(nonatomic,strong)UIView* backgroundView;

/**

 *记录底部滑动的红线条的属性

 */

@property(nonatomic,strong)UIImageView* selectedImage;


@end


@implementation LHTabBarController


- (void)viewDidLoad

{

    [super viewDidLoad];

    self.tabBar.hidden = YES;

    [self initCustomTabBar];

}

#pragma mark - 自定义底部的tabbar

-(void)initCustomTabBar

{

    /**

     *自定义tabBarItem步骤一 初始化标签栏背景图

     */

    self.backgroundView=[[UIView alloc]init];

    self.backgroundView.frame=CGRectMake(0, self.view.frame.size.height-TabarHeight, self.view.frame.size.width, TabarHeight);

    self.backgroundView.backgroundColor=[UIColor colorWithPatternImage:[UIImage imageNamed:@"tab_bg_all"]];

    [self.view addSubview:self.backgroundView];

    

    /**

     *自定义tabBarItem步骤二 初始化标签栏按钮

     */

    float buttonWidth = kScreenWidth / 5;

    NSArray* imageArray=@[@"movie_home",@"msg_new",@"start_top250",@"icon_cinema",@"more_setting"];

    NSArray *titlesArr = @[@"首页", @"新闻", @"Top", @"影院", @"更多"];

    for (int i=0; i<titlesArr.count; i++) {

            NSString *title = titlesArr[i];

            NSString *imgName = imageArray[i];

            CGRect frame = CGRectMake(i*buttonWidth, 0, buttonWidth, TabarHeight);

            LHButton *item = [[LHButton alloc] initWithFrame:frame withImgName:imgName withTitle:title];

            [item addTarget:self action:@selector(buttonAction:) forControlEvents:UIControlEventTouchUpInside];

            item.tag = 1000+i;

            [self.backgroundView addSubview:item];

        }

    /**

     *自定义tabBarItem步骤三 初始化默认指向的按钮

     */

    self.selectedImage=[[UIImageView alloc]initWithFrame:CGRectMake(TabarHeight-32, TabarHeight-2, TabarHeight-9, TabarHeight-47)];

    self.selectedImage.image=[UIImage imageNamed:@"redline"];

    [self.backgroundView addSubview:self.selectedImage];


}

#pragma mark - 底部按钮点击响应事件

-(void)buttonAction:(LHButton *)sender

{

    self.selectedIndex = sender.tag - 1000;

    [UIView animateWithDuration:.2f animations:^{

        self.selectedImage.x = (sender.tag - 1000)*( kScreenWidth / 5)+16;

    }];

}

                       第三部分  程序截图(注意底部红色的滑动条)


© 著作权归作者所有

上一篇: 自定义按钮
不孤独的美食家
粉丝 88
博文 159
码字总数 48705
作品 1
长沙
高级程序员
私信 提问
iOS开发中标签控制器的使用——UITabBarController

iOS开发中标签控制器的使用——UITabBarController 一、引言 与导航控制器相类似,标签控制器也是用于管理视图控制器的一个UI控件,在其内部封装了一个标签栏,与导航不同的是,导航的管理方...

珲少
2015/11/13
3.3K
0
UITabBarController 标签栏控制器-IOS开发

在 UIKit 中UITabbar 代表了标签栏,而 UITabBarController 对其进行了封装,令多个不同的视图管理与切换变的更加轻松。 构建一个标签栏控制器,首先要为每个按钮准备一个单独的页。每一页都...

junwong
2012/03/05
1K
1
UITabBarController 标签栏控制器

在 UIKit 中UITabbar 代表了标签栏,而 UITabBarController 对其进行了封装,令多个不同的视图管理与切换变的更加轻松。 构建一个标签栏控制器,首先要为每个按钮准备一个单独的页。每一页都...

zhangjiansong0
2014/06/25
0
0
IOS软件开发视频教程要的来

IPhone开发实战视频教程内容介绍 1.iPhone开发实战视频教程-iOS开发视频教程 介绍了iPhone开发的开发环境iOS SDK,X-Code,Interface Builder,iTunes等;创建项目的基本步骤,项目工程中文件...

三毛钱
2016/07/09
251
3
iOS 标签栏控制器--JJTabBarController

JJTabBarController 是个自定义的标签栏控制器,支持: 个性化标签栏 内置转换 Choose the TabBar orientation. 集成故事板 添加新的行为块...

叶秀兰
2014/03/24
197
0

没有更多内容

加载失败,请刷新页面

加载更多

PhotoShop 色调:理解直方图/RGB通道信息

一、直方图:图表的形式,展示图像像素分布的情况 1.平均值:表示平均亮度 2.标准偏差值:表示亮度值范围内的中间值 3.像素: 表示用于计算直方图的像素总数 4.色阶:显示指针下面的区域亮度...

东方墨天
10分钟前
4
0
wildfly(JBoss AS)应用服务器快速入门

什么是wildfly JBoss AS 从8版本起名为wildfly。Wildfly是一个开源的基于JavaEE的轻量级应用服务器。可以在任何商业应用中免费使用。 WildFly是一个灵活的、轻量的、强大管理能力的应用程序服...

程序新视界
35分钟前
2
0
Java集合类常见面试知识点总结

Java集合类学习总结 这篇总结是基于之前博客内容的一个整理和回顾。 这里先简单地总结一下,更多详细内容请参考我的专栏:深入浅出Java核心技术 https://blog.csdn.net/column/details/21930...

Java技术江湖
38分钟前
6
0
怎么用for循环打出爱心

先上效果图: 这是用*组成的爱心,下面讲讲思路: 首先这个图形可以拆分成三部分:第一部分是上面三行的两个梯形,第二部分是中间三行的长方形,第三部分是最下面的倒三角形。 其实图形拆分好...

INEVITABLE
44分钟前
4
0
用HttpUrlConnection伪造成HttpClient

https://www.jianshu.com/p/27ad06cc39d2

shzwork
49分钟前
4
0

没有更多内容

加载失败,请刷新页面

加载更多

返回顶部
顶部