IOS分页栏TabBar的使用(四)
2013-03-03 18:25
316 查看
一般TableBar放置在屏幕的最下方会有很多平级的按钮,用户可以击不同的按钮切换屏幕中显示的视图,TableBar可以使用系统自带的也可以自己继承重写它的方法实现自定义TableBar,今天我们主要讨论系统自带的TableBar的简单使用。
如上图所示,系统自带的TableBar屏幕中最多只可以放置5个,如果超过5个系统会自动生成一个More按钮,会将超出的以一个列表的形式展现出来,贴出代码我们分析一下。
NSMutableArray * controllers : 存放TableBar中的每一个Item,最后将它整体显示在屏幕中。
NSArray *item :存放着须要在分页栏中显示的名称,之后使用for循环依次遍历 ,将其添加入显示视图。
TableViewController :控制TableBar点击后的显示视图。
最后把它添加到显示视图当中。。
TableViewAppDelegate.m
如下图所示,多余的Item会以列表的形式展示。
-(id) initController:(NSString *)str :用于初始化,将显示内容传入。创建TableBar的时候将名称作为参数传入这样每次切换的时候知道用户点击了那个按钮。这个例子用户切换点击按钮的时候将切换顶部的显示内容。
-(void)viewDidLoad:这个方法很重要,用户没按点击按钮都会重新加载,因为上面设置了每个Item的Controller都是TableViewController,如果每个页面显示的内容都不确定的话,可以多写几个Controller类来控制每一个Table页面的切换。
里面的代码我就不多解释了,之前的博文有详细的说明噢~
TableViewController.m
view
source
如上图所示,系统自带的TableBar屏幕中最多只可以放置5个,如果超过5个系统会自动生成一个More按钮,会将超出的以一个列表的形式展现出来,贴出代码我们分析一下。
NSMutableArray * controllers : 存放TableBar中的每一个Item,最后将它整体显示在屏幕中。
NSArray *item :存放着须要在分页栏中显示的名称,之后使用for循环依次遍历 ,将其添加入显示视图。
TableViewController :控制TableBar点击后的显示视图。
最后把它添加到显示视图当中。。
TableViewAppDelegate.m
01 | #import "TableViewAppDelegate.h" |
02 | #import "TableViewController.h" |
03 |
04 | @implementation TableViewAppDelegate |
05 |
06 | @synthesize window = _window; |
07 |
08 | - ( BOOL )application:(UIApplication *)application didFinishLaunchingWithOptions:(NSDictionary *)launchOptions |
09 | { |
10 |
11 | NSMutableArray *controllers = [NSMutableArray array]; |
12 |
13 | NSArray *item = [NSArray arrayWithObjects:@ "雨松MOMO" ,@ "若若娃" ,@ "小可爱" ,@ "哇咔咔" ,@ "小老虎" ,@ "学苹果" ,@ "快乐乐" ,@ "寿司卷" , nil]; |
14 |
15 | //数组数量 |
16 | int count = [item count]; |
17 |
18 | for ( int i = 0; i < count; i++) |
19 | { |
20 |
21 | //创建TableViewController |
22 | TableViewController * tabViewController = [[TableViewController alloc]initController:[item objectAtIndex:i]]; |
23 |
24 | //设置标题 |
25 | [tabViewController setTitle:@ "雨松MOMO的程序世界" ]; |
26 |
27 | //绑定tabViewController用来响应按钮点击事件 |
28 | UINavigationController *nav = [[UINavigationController alloc] initWithRootViewController:tabViewController]; |
29 |
30 | //设置标题 |
31 | nav.title = [item objectAtIndex:i]; |
32 |
33 | //设置图片 |
34 | nav.tabBarItem.image = [UIImage imageNamed:@ "title.png" ]; |
35 |
36 | //设置风格为默认风格 |
37 | nav.navigationBar.barStyle = UIBarStyleDefault; |
38 |
39 | //添加这个UINavigationController |
40 | [controllers addObject:nav]; |
41 |
42 | //释放对象 |
43 | [nav release]; |
44 | } |
45 |
46 | //创建UITabBarController,将显示的内容添加进去 |
47 | UITabBarController *bar = [[UITabBarController alloc] init]; |
48 | bar.viewControllers = controllers; |
49 | bar.customizableViewControllers = controllers; |
50 |
51 | //添加到显示窗口中 |
52 | [self.window addSubview:bar.view]; |
53 |
54 | // Override point for customization after application launch. |
55 | [self.window makeKeyAndVisible]; |
56 | return YES; |
57 | } |
58 | @end |
-(id) initController:(NSString *)str :用于初始化,将显示内容传入。创建TableBar的时候将名称作为参数传入这样每次切换的时候知道用户点击了那个按钮。这个例子用户切换点击按钮的时候将切换顶部的显示内容。
-(void)viewDidLoad:这个方法很重要,用户没按点击按钮都会重新加载,因为上面设置了每个Item的Controller都是TableViewController,如果每个页面显示的内容都不确定的话,可以多写几个Controller类来控制每一个Table页面的切换。
里面的代码我就不多解释了,之前的博文有详细的说明噢~
TableViewController.m
view
source
01 | #import "TableViewController.h" |
02 |
03 | @implementation TableViewController |
04 |
05 | -(id) initController:(NSString *)str |
06 | { |
07 |
08 | self = [super init]; |
09 | if (self) |
10 | { |
11 | //每次点击新的标签,将显示内容值赋给showString |
12 | showString = str; |
13 | } |
14 | return self; |
15 | } |
16 |
17 | - ( void )viewDidLoad |
18 | { |
19 | [super viewDidLoad]; |
20 |
21 | //创建label视图 |
22 | UILabel *label = [[UILabel alloc] initWithFrame:CGRectMake(0, 0, 320, 30)]; |
23 | //设置显示内容 |
24 | label.text = [NSString stringWithFormat:@ "%@%@" ,@ "您选中了" ,showString]; |
25 |
26 | //设置背景颜色 |
27 | label.backgroundColor = [UIColor blueColor]; |
28 | //设置文字颜色 |
29 | label.textColor = [UIColor whiteColor]; |
30 | //设置显示位置居中 |
31 | label.textAlignment = UITextAlignmentCenter; |
32 | //设置字体大小 |
33 | label.font = [UIFont fontWithName:[[UIFont familyNames] objectAtIndex:10] size:20]; |
34 |
35 | //创建图片视图 |
36 | UIImageView *imageview = [[UIImageView alloc] initWithFrame: |
37 | CGRectMake(100, 150, 120, 120)]; |
38 |
39 | //设置图片的显示的资源路径 |
40 | [imageview setImage:[UIImage imageNamed:@ "0.jpg" ]]; |
41 |
42 | //添加到视图中 |
43 | [self.view addSubview:label]; |
44 | [self.view addSubview:imageview]; |
45 |
46 | //释放对象 |
47 | [label release]; |
48 | [imageview release]; |
49 | } |
50 |
51 | - ( void )viewDidUnload |
52 | { |
53 | [super viewDidUnload]; |
54 | // Release any retained subviews of the main view. |
55 | // e.g. self.myOutlet = nil; |
56 | } |
57 |
58 | @end |
相关文章推荐
- IOS 入门开发之分页栏TabBar的使用(四)
- IOS研究之分页栏TabBar的使用
- IOS 入门开发之分页栏TabBar的使用(四)
- iOS UI设计: 完美自定义tabbar (不需要额外代码即可按自带的tabbar使用方式)
- react native TabBarIOS 使用详解
- IOS UI TabBar标签栏的使用
- [iOS 导航与TabBar混合] UINavigationCon+UITabBarViewController 混合使用
- ios-day05-04(图片轮播器 UIScrollView的分页、UIPageControl的使用、NSTimer(定时器)的使用)
- TabBarIOS和NavigatorIOS组合使用
- React Native中TabBarIOS的简单使用方法示例
- Delphi for iOS开发指南(8):在iOS应用程序中使用Tab组件来显示分页
- IOS 入门开发之分页栏TableBar的使用(四)
- iOS边练边学--UIScrollView和xib文件实现简单分页+定时器初使用
- iOS使用push隐藏子页面底部bottom TabBar
- IOS中同时使用TabBar和Navigation
- iOS:分页控件UIPageControl的使用
- iOS-使用代码CGImage调节tabBar上按钮图片的大小
- iOS 5 Storyboard 学习之 Tabbar Controller,Navigation Controller (3) 深入Segue,Class,Protocol,Delegate的基本使用
- IOS OC tabbarView控制器的使用
- iOS App开发中的UIPageControl分页控件使用小结