UITabBar实现中间大按钮


原理非常简单,把中间tab bart item的图设为一个大图就可以了。
缺点就是超出tab bar的部分是不能点击的。


//设置tab bar 中间item的图为大图标    

UIViewController* vc = [UIViewController new];

UINavigationController* nav = [[UINavigationController alloc] initWithRootViewController:vc];

[vcs addObject:nav];

nav.tabBarItem.image = [[UIImage imageNamed:@"jdstreetNew_up"] imageWithRenderingMode:UIImageRenderingModeAlwaysOriginal];

nav.tabBarItem.selectedImage = [[UIImage imageNamed:@"jdstreetNew_up"] imageWithRenderingMode:UIImageRenderingModeAlwaysOriginal];


//隐藏tab bar顶部的分隔线。否则顶部的分隔线将压在中间大图标的上面。

{

    //设置tab bar的背景图后setShadowImage才有效。

    {

        CGRect rect = CGRectMake(0, 0, self.view.frame.size.width, 44);

        UIGraphicsBeginImageContext(rect.size);

        CGContextRef context = UIGraphicsGetCurrentContext();

        //CGContextSetFillColorWithColor(context, [[UIColor clearColor] CGColor]);

        CGContextSetFillColorWithColor(context, [[UIColor colorWithRed:247/255.0

                                                                 green:247/255.0

                                                                  blue:247/255.0

                                                                 alpha:1] CGColor]);

        CGContextFillRect(context, rect);

        UIImage *img = UIGraphicsGetImageFromCurrentImageContext();

        UIGraphicsEndImageContext();

        

        [self.tabBar setBackgroundImage:img];

    }


    //将tab bar顶部的分隔线设置为不可见。

[self.tabBar setShadowImage:[UIImage new]];

}



中间tabbar的icon

UITabBar实现中间大按钮_第1张图片     


最后的效果:

UITabBar实现中间大按钮_第2张图片


你可能感兴趣的:(iPhone)