ios weibo 搭建 自定义tableBar

转自:http://www.maxiaoguo.com/clothes/270.html

创建程序载入界面

- (BOOL)application:(UIApplication *)application didFinishLaunchingWithOptions:(NSDictionary *)launchOptions
{
    //1>创建窗口
    self.window = [[UIWindow alloc] initWithFrame:[UIScreen mainScreen].bounds];
    //2>设置窗口的根控制器
    UITabBarController *tabBarController = [[UITabBarController alloc] init];
    self.window.rootViewController = tabBarController;
    //3>显示窗口
    [self.window makeKeyAndVisible];
    return YES;
}

LaunchImage配置

LaunchImage.launchimage文件下的Contents.json文件中记录了LaunchImage的详细配置:


ios weibo 搭建 自定义tableBar_第1张图片

取消APP图标渲染

  ios weibo 搭建 自定义tableBar_第2张图片

 

程序加载时隐藏状态栏

  ios weibo 搭建 自定义tableBar_第3张图片

  在程序加载完成后如需恢复状态栏显示,可以在didFinishLaunchingWithOptions方法中调用[application setStatusBarHidden:NO]方法;

渲染图片

    在iOS7中,会对selectedImage的图片再次渲染为蓝色,要想显示原图,就必须要取消渲染;

    取消渲染调用的方法:

selectedImage = [selectedImage imageWithRenderingMode:UIImageRenderingModeAlwaysOriginal];

如何区分ios6 跟 ios7

#define iOS7 ([[UIDevice currentDevice].systemVersion doubleValue] >= 7.0),一般放在 ItcastWeibo-Prefix.pch 里

如何根据ios6 跟 ios7 来设置不同的图片,如:ios6 的图片是凸出来的,ios7是平的

写一个分类
#import "UIImage+MJ.h"

@implementation UIImage (MJ)
+ (UIImage *)imageWithName:(NSString *)name
{
    if (iOS7) {
        NSString *newName = [name stringByAppendingString:@"_os7"];
        UIImage *image = [UIImage imageNamed:newName];
        if (image == nil) { // 没有_os7后缀的图片
            image = [UIImage imageNamed:name];
        }
        return image;
    }
    
    // 非iOS7
    return [UIImage imageNamed:name];
}
通过分类来获取不同的图片
 // 设置选中的图标
    UIImage *selectedImage = [UIImage imageWithName:selectedImageName];
    if (iOS7) {
        childVc.tabBarItem.selectedImage = [selectedImage imageWithRenderingMode:UIImageRenderingModeAlwaysOriginal];
    } else {
        childVc.tabBarItem.selectedImage = selectedImage;
    }
	

当 创建好controler之后就相当于 创建了个 tableItem ,在自定义tablebar的时候已经初始化 好tableBar 所有加载完毕之后需要删除系统的tablebar,view加载完毕删除
  // 2.包装一个导航控制器
    UINavigationController *nav = [[UINavigationController alloc] initWithRootViewController:childVc];
    [self addChildViewController:nav];
    
    // 3.添加tabbar内部的按钮
    [self.customTabBar addTabBarButtonWithItem:childVc.tabBarItem];
- (void)viewWillAppear:(BOOL)animated
{
    [super viewWillAppear:animated];
    
    // 删除系统自动生成的UITabBarButton
    for (UIView *child in self.tabBar.subviews) {
        if ([child isKindOfClass:[UIControl class]]) {
            [child removeFromSuperview];
        }
    }
}




你可能感兴趣的:(ios weibo 搭建 自定义tableBar)