RKTabView
提供了创建具有自定义行为、功能和外观的工具栏的机会。标准iOS组件如UITabBar
或UIToolbar
有时无法按需自定义,并且总是以某种方式行为。与它们不同,该组件可以随时在任何地方安装,但最重要的是 - 所有可能的元素外观和行为都可以不同。想象一下,部分栏应该像UITabBar
(一个打开 - 其他关闭),第二部分应该作为切换器(任何元素都可以独立打开或关闭),第三部分则是普通的按钮。所有这些都可以使用RKTabView
完成。
元素创建和行为定制
创建3种类型的元素
UITabBar
元素相同。一个打开 - 其他关闭)CocoaPods是将RKTabView集成到您的项目的推荐方式。
Podfile
文件中:pod 'RKTabView', '~> 1.0.0'
pod install
。#import <RKTabView.h>
将其包含在任何需要使用它的地方。RKTabView
和RKTabItem
.h .m文件添加到您的项目中(总共添加4个文件)。RKTabView.h
(使用#import "RKTabView.h"
)。标签项有3种初始化方法。每种方法用于特定的标签项类型。
使用'createUsualItemWithImageEnabled:imageDisabled:'类方法创建标准元素(一个开启,其余关闭)
RKTabItem *tabItem = [RKTabItem createUsualItemWithImageEnabled:(UIImage *) imageDisabled:(UIImage *)];
使用'createUnexcludableItemWithImageEnabled:imageDisabled:'类方法创建独立元素(可以独立开启或关闭)
RKTabItem *tabItem = [RKTabItem createUnexcludableItemWithImageEnabled:(UIImage *) imageDisabled:(UIImage *)];
应指定启用和禁用图像。如果启用图像为nil,则将使用禁用图像。
要使项立即启用,请将tabState
属性设置为TabStateEnabled
。
使用'createButtonItemWithImage:target:selector:'类方法创建按钮元素
RKTabItem *tabItem = [RKTabItem createButtonItemWithImage:(UIImage *) target:(id) selector:(SEL)];
需要指定目标和方法选择器。此项充当一个普通的UIButton。
应将项收集到一个数组中,并传递给RKTabView的tabItems属性。参见下文。
使用'initWithFrame:andTabItems:'方法初始化RKTabView
RKTabView *tabView = [[RKTabView alloc] initWithFrame:(CGRect) andTabItems:(NSArray *)];
您可以使用标准的'initWithFrame:'方法,稍后传递tabItems数组。
RKTabView *tabView = [[RKTabView alloc] initWithFrame:(CGRect)];
tabView.tabItems = @[item1, item2, item3, ...];
要将标签视图显示出来,请将其添加到视图的子视图中
[self.view addSubview:tabView];
可以在Interface Builder中创建标签视图。然后只需将项数组传递给它即可。
您的代理应遵守'RKTabViewDelegate'协议并实现这些方法
- (void)tabView:(RKTabView *)tabView tabBecameEnabledAtIndex:(int)index tab:(RKTabItem *)tabItem;
- (void)tabView:(RKTabView *)tabView tabBecameDisabledAtIndex:(int)index tab:(RKTabItem *)tabItem;
代理方法与“按钮”项无关。第一个方法用于标准和非排除项。第二个仅供非排除项。
创建标签视图后,应指定代理
RKTabView *tabView = [[RKTabView alloc] initWithFrame:CGRectMake(0,0,320,44)];
tabView.delegate = self;
objc tabView.horizontalInsets = HorizontalEdgeInsetsMake(70, 70);
objc tabView.drawSeparators = YES;
objc tabView.darkensBackgroundForEnabledTabs = YES;
启用背景颜色
可以为“启用”状态指定整个标签页视图或任何单独元素的背景颜色。
如果您希望所有元素具有相同的“启用”颜色,请为标签页视图设置enabledTabBackgrondColor属性。
tabView.enabledTabBackgrondColor = [UIColor redColor];
如果您希望某些元素具有单独的“启用”背景颜色,则指定标签项的enabledBackgroundColor属性。
tabItem.enabledBackgroundColor = [UIColor blueColor];
注意:tabItem忽略了tabView的“启用”背景颜色,如果指定了,则使用它自己的颜色。
元素背景色
要设置元素背景颜色,请指定'backgroundColor'属性。
tabItem.backgroundColor = [UIColor redColor];
标题
要设置元素的标题,请为标签项设置'titleString'属性。
tabItem.titleString = @"Title";
标题字体和标题字体颜色可以像指定“启用背景颜色”一样在标签页视图和标签项中指定。如果指定了标签项的属性,则忽略标签页视图的属性。
tabView.titlesFont = [UIFont systemFontOfSize:9];
tabView.titlesFontColor = [UIColor darkTextColor];
或
tabItem.titleFont = [UIFont systemFontOfSize:9];
tabItem.titleFontColor = [UIColor darkTextColor];
RKTabView在MIT许可下发布
版权所有(c)2013 RafaelKayumov
在此特此授予任何获得本软件及其相关文档文件(“软件”)副本(以下简称“软件”)的人免费处理软件的权利,包括但不限于使用、复制、修改、合并、发布、分发、再许可和/或销售软件副本,并允许向获得软件的人提供本软件,以供其使用,但受以下条件限制
上述版权声明和本许可声明应包含在所有副本或实质性部分中。
软件按其现状提供,不提供任何形式的保证,无论是明示的还是暗示的,包括但不限于适销性、适用于特定目的和侵权性保证。在任何情况下,作者或版权所有者均不对任何索赔、损害或其他责任承担责任,无论是在合同行为、侵权行为或其他行为中产生的,无论是因软件、软件的使用或其他使用而产生的。