当前位置: 首页 > 图灵资讯 > 技术篇> IOS研究院之分页栏TabBar的使用(四)

IOS研究院之分页栏TabBar的使用(四)

来源:图灵教育
时间:2023-06-15 09:27:36

使用IOS研究院分页栏Tabar(4)

发布五.01, 2012分类 【IOS研究院应用开发】

如需注明原创文章,雨松MOMO程序研究院

一般Tablebar放在屏幕底部会有很多平面按钮,用户可以点击不同的按钮切换屏幕上显示的视图,Tablebar可以使用系统或继承重写它的方法来实现自定义Tablebar,今天我们主要讨论系统的简单使用。

如上图所示,最多只能在系统自带的TableBar屏幕中放置5个。如果超过5个系统会自动生成More按钮,超出的按钮会以列表的形式显示出来。我们来分析一下贴代码。

NSMutableArray * controllers : 将TableBar中的每一个Item存储起来,最后将其整体显示在屏幕上。

NSArray *item :存储必须显示在分页栏中的名称,然后使用for循环依次遍历 ,将其添加到显示视图中。

TableViewController :点击后控制TableBar的显示视图。

最后将其添加到显示视图中。。

TableViewAppDelegate.m

#import "TableViewAppDelegate.h"#import "TableViewController.h"@implementation TableViewAppDelegate@synthesize window = _window;- (BOOL)application:(UIApplication *)application didFinishLaunchingWithOptions:(NSDictionary *)launchOptions{    NSMutableArray *controllers = [NSMutableArray array];    NSArray *item = [NSArray arrayWithObjects:@“雨松MOMO”@“若若娃”、“小可爱”、“哇咔咔”、“小老虎”、“学苹果”、“快乐”、“寿司卷”, nil];     //数组数量    int count = [item count];    for (int i = 0; i < count; i++){        //创建Tableviewcontrleler        TableViewController * tabViewController = [[TableViewController alloc]initController:[item objectAtIndex:i]];        //设置标题        [tabViewController setTitle:@“雨松MOMO的程序世界”;        //绑定tabviewcontroller以响应按钮点击事件        UINavigationController *nav = [[UINavigationController alloc] initWithRootViewController:tabViewController];        //设置标题        nav.title = [item objectAtIndex:i];        //设置图片        nav.tabBarItem.image = [UIImage imageNamed:@"title.png"];        ///设置风格为默认风格        nav.navigationBar.barStyle = UIBarStyleDefault;        //添加UINavigationcontroller[controllers addObject:nav];        ///释放对象        [nav release];}    ///创建UITabarController,将显示的内容添加到UITabarcontrler中 *bar = [[UITabBarController alloc] init];bar.viewControllers = controllers;bar.customizableViewControllers = controllers;///添加到显示窗口[self.window addSubview:bar.view];       // Override point for customization after application launch.    [self.window makeKeyAndVisible];    return YES;}@end

如下图所示,多余的Item将以列表的形式显示。

-(id) initController:(NSString *)str :用于初始化,并输入显示内容。在创建TableBar时,将名称作为参数输入,以便用户在每次切换时点击按钮。在此例子中,用户在切换按钮时切换顶部显示的内容。

-(void)viewDidLoad:这种方法很重要,用户不按点击按钮就会重新加载,因为每个Item的Controler都是TableviewControler。如果每个页面显示的内容不确定,可以写更多的Controler类别来控制每个Table页面的切换。

我不会解释里面的代码。之前的博客文章有详细的解释~

TableViewController.m

#import "TableViewController.h"@implementation TableViewController-(id) initController:(NSString *)str{    self = [super init];    if(self)    {        ///每次点击新标签,showstringg将显示内容值赋予        showString = str;    }    return self;}- (void)viewDidLoad{    [super viewDidLoad];    ///创建label视图    UILabel *label = [[UILabel alloc] initWithFrame:CGRectMake(0, 0, 320, 30)];    //设置显示内容    label.text = [NSString stringWithFormat:@“%@%@”showString];    //设置背景色    label.backgroundColor = [UIColor blueColor];    //设置文字颜色    label.textColor = [UIColor whiteColor];    ///在中间设置显示位置    label.textAlignment = UITextAlignmentCenter;    //设置字体大小    label.font = [UIFont fontWithName:[[UIFont familyNames] objectAtIndex:10] size:20];      ///创建图片视图    UIImageView *imageview = [[UIImageView alloc] initWithFrame:                 CGRectMake(100, 150, 120, 120)];      ////设置图片显示的资源路径    [imageview setImage:[UIImage imageNamed:@"0.jpg"]];      //添加到视图中    [self.view addSubview:label];    [self.view addSubview:imageview];    ///释放对象    [label release];    [imageview release];}- (void)viewDidUnload{    [super viewDidUnload];    // Release any retained subviews of the main view.    // e.g. self.myOutlet = nil;}@end