我又来啦····最近在准备实习,渣渣的工作路程就要开始啦啦啦啦····
闲话少说,进入正题吧~····之前在做项目的时候很多时候用到tabBarViewController这个东西,ios uikit自带的UITabBarViewController虽然可以直接用,但是我发现有几个局限性:
1、不带滑动手势。现在很多app的tabBar都是带有滑动的手势,滑动翻页这种交互不仅让人感觉很酷,而且也方便操作,不用去点击下面的tabBar。但是UIKit里面竟然没有,挺失望的
2、没有滑动翻页的效果。滑动翻页手势没有嘛就算了···但是竟然连滑动翻页的效果也没有·····这样就感觉比较死板,如果想做一个娱乐性比较强的app的话就不行啦
3、不可以自定义tabBar,原声的tabBar样式比较难改。这是最头疼的了···因为设计师往往都会要求把这个地方给改了···原声的确实不太好看,而且没有个性,虽然网上也有一些方法可以实现自定义tabBar的效果,比如隐藏掉原来的tabBar··自己写一个啦什么的··我之前也是这样干的,勉强能够满足需求吧,但这明显不是最好的办法
基于以上几个理由···我就小牛试刀自己写了个带滑动手势,了可以通过设置参数选择是否需要翻页手势和滑动效果,并且可以用自己的UIButton作为tabBar的tabBarViewController了,原理其实很简单,要达到滑动手势的效果,就直接用UIScrollView以及它的几个委托函数就可以了,tabBar就直接用UIButton,提供给用户设置button数组的接口,内部实现点击事件就ok了。。。具体看代码吧,注释应该算是比较清楚的了,有问题请留言~···thx:
同样,头文件
//
// KKTabBarViewController.h
// KKTabBarViewDemo
//
// Created by yaodd on 14-1-26.
// Copyright (c) 2014年 yaodd. All rights reserved.
//
// 带滑动手势的tabBarViewController,可自定义tabBar,只需要传入自己自定义的UIButton数组即可,
#import "ViewController.h"
typedef NS_ENUM(NSInteger, TabBarPosition){
kTabBarPositionTop,
kTabBarPositionBottom
};
@interface KKTabBarViewController : ViewController <UIScrollViewDelegate>
@property (nonatomic, assign) int curPage; //当前选中的页面
@property (nonatomic, assign) BOOL tabBarHidden; //是否