iOS 自定义tabBar
来源:互联网 发布:土佐之梦 知轩藏书 编辑:程序博客网 时间:2024/04/28 18:35
苹果虽然帮我们封装好了菜单栏,但是有些时候我们不想用封装好的怎么办?自定义吧!!
直接上代码了!!
<span style="color:#ff0000;">HFG_TabBar.h</span>#import <UIKit/UIKit.h>@interface HFG_TabBar : UITabBarController@end
<span style="color:#ff0000;">HFG_TabBar.m</span>#import "HFG_TabBar.h"@interface HFG_TabBar (){ UIButton *btn;}@property (nonatomic,strong)UIButton *selectedBtn;@end@implementation HFG_TabBar- (void)viewDidLoad { [super viewDidLoad]; // Do any additional setup after loading the view.}- (void) viewWillLayoutSubviews{ [self.tabBarController.tabBar removeFromSuperview]; // 移除原先的tabBar CGFloat tabBarY = [UIScreen mainScreen].bounds.size.height - 49; UIView *tabBarView = [[UIView alloc]initWithFrame:CGRectMake(0, tabBarY, [UIScreen mainScreen].bounds.size.width, 49)];// 视图设置相关都在这里 [tabBarView setBackgroundColor:[UIColor colorWithRed:0.748 green:0.850 blue:1.000 alpha:1.000]]; [self.view addSubview:tabBarView]; for (int i = 0; i < 2; i ++) { btn = [[UIButton alloc]init]; //给按钮添加图片 没有图片就没加// NSString *imageName = [NSString stringWithFormat:@"HFG_TabBar%d", i ];// NSString *imageNameSel = [NSString stringWithFormat:@"HFG_TabBar%dSelect", i ];// [btn setImage:[UIImage imageNamed:imageName] forState:UIControlStateNormal];// [btn setImage:[UIImage imageNamed:imageNameSel] forState:UIControlStateSelected];// [btn setBackgroundColor:[UIColor greenColor]]; if (i == 0) { [btn setTitle:@"标题1" forState:UIControlStateNormal]; [btn setTitleColor:[UIColor orangeColor] forState:UIControlStateSelected ]; [btn setBackgroundColor:[UIColor colorWithRed:0.276 green:1.000 blue:0.538 alpha:1.000]]; } if (i == 1) { [btn setTitle:@"标题2" forState:UIControlStateNormal]; [btn setTitleColor:[UIColor orangeColor] forState:UIControlStateSelected]; [btn setBackgroundColor:[UIColor colorWithRed:0.120 green:0.538 blue:1.000 alpha:1.000]]; } CGFloat X = i *tabBarView.frame.size.width/2; btn.frame = CGRectMake(X, 0, tabBarView.frame.size.width/2, tabBarView.frame.size.height); [tabBarView addSubview:btn]; // 设置刚进入时,第一个按钮为选中状态 if (0 == i) { btn.selected = YES; self.selectedBtn = btn; // 设置该按钮为选中的按钮 } btn.tag = i; [btn addTarget:self action:@selector(clickBtn:) forControlEvents:UIControlEventTouchUpInside]; }}- (void) clickBtn:(UIButton *)sender{ if (sender.tag == 0) { self.selectedIndex = 0; } if (sender.tag == 1) { self.selectedIndex = 1; } self.selectedBtn.selected = NO; sender.selected = YES; self.selectedBtn = sender; }@end这样,我们的自定义tabBar就定义好了,但重要的是,怎么和视图控制器关联起来?其实很简单,先创建好相关的视图控制器,然后代码如下:
<span style="color:#ff0000;">AppDelegate.m</span>
#import "AppDelegate.h"#import "HFG_TabBar.h"#import "HFG_RandomCallViewController.h"#import "HFG_AllClassViewController.h"@interface AppDelegate ()@end@implementation AppDelegate- (BOOL)application:(UIApplication *)application didFinishLaunchingWithOptions:(NSDictionary *)launchOptions { HFG_RandomCallViewController *RandomCall = [[HFG_RandomCallViewController alloc]init]; HFG_AllClassViewController *AllClass = [[HFG_AllClassViewController alloc]init]; UINavigationController *randomCall = [[UINavigationController alloc]initWithRootViewController:RandomCall]; UINavigationController *allClass = [[UINavigationController alloc]initWithRootViewController:AllClass]; HFG_TabBar *tabBarController = [[HFG_TabBar alloc]init]; tabBarController.viewControllers = @[randomCall,allClass]; self.window = [[UIWindow alloc]initWithFrame:[UIScreen mainScreen].bounds]; self.window.rootViewController = tabBarController; [self.window makeKeyAndVisible]; return YES;}
0 0
- IOS之自定义tabbar
- ios 自定义TabBar
- iOS 自定义tabbar
- iOS Swift 自定义tabbar
- IOS 自定义tabbar
- iOS自定义tabbar
- iOS 自定义tabBar
- iOS -- 自定义TabBar
- iOS 开发 自定义Tabbar
- iOS自定义TabBar
- ios中自定义tabBar
- ios中自定义tabBar
- IOS 自定义Tabbar
- iOS自定义tabBar
- iOS自定义tabbar
- iOS-自定义TabBar
- iOS开发: 自定义tabBar
- iOS 自定义tabBar
- linux 用rpm安装GCC过程
- IVideoWindow视频窗口接口
- 阅读笔记4
- [Cocoa]_[NSScrollView]_[界面切换]
- TopCoder SRM 669 DIV 1
- iOS 自定义tabBar
- load和get的区别分析
- Linux下查看文件内容的命令
- weka基础:weka.core
- Ajax与HTML5 history pushState/replaceState实例
- 命令消息--ID_APP_EXIT整理
- 网络操作与AFNetworking
- 二、微信企业号开发:corpsecret到底在哪块呢
- SWT布局