AKTabBarController is an adaptive and customizable tab bar for iOS
来源:互联网 发布:淘宝童装店铺名称 编辑:程序博客网 时间:2024/05/16 12:16
Features
- Portrait and Landscape mode tab bar.
- Ability to set the height of the tab bar.
- Ability to hide the tab bar when pushed.
- Ability to set the minimum height of the tab bar to allow display the title.
- Ability to hide the title in the tabs.
- When the height of the tab bar is too small, the title is not displayed.
- Only one image is needed for both selected and unselected states (style is added via CoreGraphics).
- Icons are resized when needed and particularly in landscape mode.
- Animated state of the tabs with a nice cross fade animation.
- Support pre-rendered images (no glossy effect will be applied).
- Set a custom font for tab titles.
Preview
iPhone portrait
Usage
Installation
Add the dependency to your Podfile
:
platform :iospod 'AKTabBarController'
Run pod install
to install the dependencies.
Next, import the header file wherever you want to use the tab bar controller:
#import "AKTabBarController.h"
Creation and initialization of the tab bar
// Create and initialize the height of the tab bar to 50px._tabBarController = [[AKTabBarController alloc] initWithTabBarHeight:50];// Adding the view controllers to manage.[_tabBarController setViewControllers:@[[[FirstViewController alloc] init], [[SecondViewController alloc] init], [[ThirdViewController alloc] init], [[FourthViewController alloc] init]]]];
Setting the title and image
(in each view controller)
// Setting the image of the tab.- (NSString *)tabImageName{ return @"myImage";}// Setting the title of the tab.- (NSString *)tabTitle{ return @"Tab";}
Accessing the current AKTabViewController instance
// Ensure to import AKTabController and the category for UIViewController#import <AKTabBarController.h>#import <AKTabBarController/UIViewController+AKTabBarController.h>// It's now possible to access the current AKTabBarController instance.- (void)viewDidLoad { [super viewDidLoad]; [self.akTabBarController setTextColor:[UIColor redColor]];}
Note: self.akTabBarController returns nil on devices running iOS < 5.0.
Customization
Setting the minimum height to display the title
[_tabBarController setMinimumHeightToDisplayTitle:50];
Hide the tab title
[_tabBarController setTabTitleIsHidden:NO];
Hide the tab bar when pushed in an UINavigationController
When pushing a viewcontroller in the viewControllers stack of an UINavigationController it is possible to hide the tab bar. It works exactely like the original UITabBarController:
[viewController setHidesBottomBarWhenPushed:YES];
Full customization example
// Tab background Image[_tabBarController setBackgroundImageName:@"noise-dark-gray.png"];[_tabBarController setSelectedBackgroundImageName:@"noise-dark-blue.png"];// Tabs top emboss Color[_tabBarController setTabEdgeColor:[UIColor colorWithRed:0.2 green:0.2 blue:0.2 alpha:0.8]];// Tabs colors settings[_tabBarController setTabColors:@[[UIColor colorWithRed:0.1 green:0.1 blue:0.1 alpha:0.0], [UIColor colorWithRed:0.6 green:0.6 blue:0.6 alpha:1.0]]]; // MAX 2 Colors[_tabBarController setSelectedTabColors:@[[UIColor colorWithRed:0.7 green:0.7 blue:0.7 alpha:1.0], [UIColor colorWithRed:1.0 green:1.0 blue:1.0 alpha:0.0]]]; // MAX 2 Colors// Tab stroke Color[_tabBarController setTabStrokeColor:[UIColor colorWithRed:0 green:0 blue:0 alpha:0]];// Icons color settings[_tabBarController setIconColors:@[[UIColor colorWithRed:174.0/255.0 green:174.0/255.0 blue:174.0/255.0 alpha:1], [UIColor colorWithRed:228.0/255.0 green:228.0/255.0 blue:228.0/255.0 alpha:1]]]; // MAX 2 Colors[_tabBarController setSelectedIconColors:@[[UIColor colorWithRed:174.0/255.0 green:174.0/255.0 blue:174.0/255.0 alpha:1], [UIColor colorWithRed:228.0/255.0 green:228.0/255.0 blue:228.0/255.0 alpha:1]]]; // MAX 2 Colors// Text color[_tabBarController setTextColor:[UIColor colorWithRed:157.0/255.0 green:157.0/255.0 blue:157.0/255.0 alpha:1.0]];[_tabBarController setSelectedTextColor:[UIColor colorWithRed:228.0/255.0 green:228.0/255.0 blue:228.0/255.0 alpha:1.0]];// Text font[_tabBarController setTextFont:[UIFont fontWithName:@"Chalkduster" size:14]];// Hide / Show glossy effect on tab icons[_tabBarController setIconGlossyIsHidden:YES];// Enable / Disable pre-rendered image mode[_tabBarController setTabIconPreRendered:YES];
See below the result of the customization:
For further details see the Xcode example project.
Requirements
- iOS >= 4.3
- ARC
- QuartzCore.framework
Screenshots
iPhone landscape
iPad portrait
iPad landscape
Credits
- Largely inspired by Brian Collins's BCTabBarController (for views imbrication).
- Icons used in the example project are designed by Tomas Gajar (@tomasgajar).
Contact
Ali Karagoz
- http://github.com/alikaragoz
- http://twitter.com/alikaragoz
License
AKTabBarController is available under the MIT license. See the LICENSE file for more info.
Something went wrong with that request. Please try again.
- AKTabBarController is an adaptive and customizable tab bar for iOS
- Everyone is an adaptive machine.
- iOS如何定制化Tab Bar界面(How To Customize Tab Bar Background and Appearance)
- iOS之tab bar
- iOS 【错误:'Changing the delegate of a tab bar managed by a tab bar controller is not allowed.'】
- iOS Programming 101: How To Customize Tab Bar Background and Appearance
- iOS 5.0 load tab bar controller
- IOS Tab bar Item的设计
- IOS设置Tab Bar item的颜色
- iOS学习- 05 Tab Bar Controller
- iOS 跳转页面tab bar闪动
- Rapid J2EE(TM) Development : An Adaptive Foundation for Enterprise Applications
- An Adaptive Communication Architecture for Wireless Sensor Networks
- 【论文 Frost1972】An Algorithm for Linearly Constrained Adaptive Array Processing
- Active and Programmable Networks for Adaptive Architectures and Services (
- Customizable Embedded Processors: Design Technologies and Applications
- Adaptive Learning for Multi-Agent Coodination and Control
- Storyboard Tutorial: Create Tab Bar Controller and Web View
- cryptsetup – 分区加密工具
- AspNetPager重写分页按钮的链接
- VSS新建项目绑定本地项目
- this的使用方法
- 将String类型的日期字符串转成 java.sql.date 日期格式
- AKTabBarController is an adaptive and customizable tab bar for iOS
- Java内存泄露的理解与解决(转)
- 让开发者高效编程的10个新框架
- 手机中IMSI 和 IMEI知识
- 重装系统后,电脑不能上网u盘又没不能用的情况怎么装驱动
- shell 命令(持续增加)
- json
- CornerStone(SVN for Mac)使用介绍
- NSScanner 用法