iPhone中如何自定义tabbar

来源:互联网 发布:手机伴侣软件 编辑:程序博客网 时间:2024/05/21 02:35
基本思路是这样的:
1. 创建一个RootViewController,它作为delegate加载的第一个controller
2. RootViewController的上半部分加载TabbarController,下半部分是自己画的控件,它用来控制Tabbar Controller加载哪个controller的
3. 把Tabbar controller的Tabbar给hide掉
4. RootViewController的下半部分是自己画的Tabbar,想怎么画就怎么画
大家看我的截图,上面是tabbar controller,它的tabbar已经给隐藏了。
下面是我自己画的自定义tabbar,还很粗糙,最左边的按钮已经可以控制tabbar的切换了。

如何隐藏tabbar控件:
首先要customize UITabBarController,其头文件定义为:

#import<UIKit/UIKit.h>



@interface CustomTabbar : UITabBarController {

IBOutletUITabBar *tabBar1;

}

@property(nonatomic,retain) UITabBar *tabBar1;

-(void) hideExistingTabBar;

@end


在实现文件中加入:

- (void)hideExistingTabBar

{

for(UIView *viewin self.view.subviews)

{

if([viewisKindOfClass:[UITabBarclass]])

{

view.hidden =YES;

break;

}

}

}


// Implement viewDidLoad to do additional setup after loading the view, typically from a nib.

- (void)viewDidLoad {

    [superviewDidLoad];

[selfhideExistingTabBar];



让application delegate默认启动RootViewController

@interface MyTabbarAppDelegate : NSObject <UIApplicationDelegate, UITabBarControllerDelegate> {

   UIWindow *window;

    RootViewController *rootController;

}


@property (nonatomic,retain) IBOutletUIWindow *window;

@property (nonatomic,retain) IBOutletRootViewController *rootController;

实现文件代码:

@implementation MyTabbarAppDelegate


@synthesize window;

@synthesize rootController;



- (void)applicationDidFinishLaunching:(UIApplication *)application {

    

   // Add the tab bar controller's current view as a subview of the window

    [windowaddSubview:rootController.view];

}


RootViewController如何加载tabbar controller:

@classCustomTabbar;


@interface RootViewController : UIViewController {

CustomTabbar *tabbarController;

}


@property (nonatomic,retain) IBOutletCustomTabbar *tabbarController;

- (IBAction) clikcOnFirst:(id)sender;


@end

实现代码:

- (void)viewDidLoad {

[tabbarController.viewsetFrame:CGRectMake(0,0, 300, 300)];

[self.viewinsertSubview:tabbarController.viewatIndex:0];    


    [superviewDidLoad];

}

RootViewController中的其他控件如何控制tabbar controller的切换:

- (IBAction) clikcOnFirst:(id)sender{

staticint i = 0;

tabbarController.selectedViewController = [ [tabbarControllerviewControllers] objectAtIndex: i];

++i;

if ( i >6 )

i = 0;

}

原文链接:http://www.devdiv.com/iPhone中如何自定义tabbar-weblog-1-1994.html

原创粉丝点击