码迷,mamicode.com
首页 > 移动开发 > 详细

自定义Tabbar #iOS

时间:2015-05-20 13:02:16      阅读:172      评论:0      收藏:0      [点我收藏+]

标签:

我们在做项目的过程中,会经常需要自定义tabbar。我今天刚好整理了一下,把自己的想法写出来和大家分享一下。
自定义Tabbar 首先我们新建一个继承于UITabBar的子类EzTabBar 

EzTabBar.h文件内容

import “EzTabBar.h”

#define TABBAR_INSET 12

 

@implementation EzTabBar

-(void)initialize { 
UIImageView * barv = [[UIImageView alloc]init]; 
self.barImage = barv; 
self.barImage.frame = CGRectMake(TABBAR_INSET, 0, SCREENWIDTH / 4.0f - (2 * TABBAR_INSET), 3);

self.barImage.backgroundColor = COLOR(210,0,12,1);
[self addSubview:self.barImage];
}

 

-(id)initWithCoder:(NSCoder *)aDecoder 
{ 
self = [super initWithCoder:aDecoder]; 
if (self) { 
[self initialize]; 
} 
return self; 
}

-(id)initWithFrame:(CGRect)frame { 
self = [super initWithFrame:frame]; 
if (self) { 
[self initialize]; 
} 
return self; 
}

-(CGSize)sizeThatFits:(CGSize)size 
{ 
CGSize sizeThatFits = [super sizeThatFits:size]; 
sizeThatFits.height = 44;

return sizeThatFits;
}

-(void)layoutSubviews { 
[super layoutSubviews]; 
[self bringSubviewToFront:self.barImage]; 
}

-(void)setSelectedItem:(UITabBarItem *)selectedItem { 
[super setSelectedItem:selectedItem]; 
NSInteger indexOfSelectedItem = [[self items] indexOfObject:selectedItem]; 
[UIView animateWithDuration:.3 delay:.0 options:UIViewAnimationOptionCurveEaseInOut animations:^{ 
self.barImage.frame = CGRectMake(TABBAR_INSET + indexOfSelectedItem*(SCREENWIDTH / 4.0f), 0, self.barImage.frame.size.width, 3); 
} completion:^(BOOL finished){ 
}]; 
}

@end

 

自定义TabbarViewController

import “EzTabBarController.h”

@interface EzTabBarController ()

@end

@implementation EzTabBarController

(id)initWithNibName:(NSString )nibNameOrNil bundle:(NSBundle )nibBundleOrNil 
{ 
self = [super initWithNibName:nibNameOrNil bundle:nibBundleOrNil]; 
if (self) { 
// Custom initialization 
} 
return self; 
}

(void)viewDidLoad 
{ 
[super viewDidLoad];

UITabBar *tabBar = self.tabBar; 
UITabBarItem *tabBarItem1 = [tabBar.items objectAtIndex:0]; 
UITabBarItem *tabBarItem2 = [tabBar.items objectAtIndex:1]; 
UITabBarItem *tabBarItem3 = [tabBar.items objectAtIndex:2]; 
UITabBarItem *tabBarItem4 = [tabBar.items objectAtIndex:3];

tabBarItem1.image = [[UIImage imageNamed:@”TabBarIconHome”] imageWithRenderingMode:UIImageRenderingModeAlwaysOriginal]; 
tabBarItem1.selectedImage = [[UIImage imageNamed:@”TabBarIconHomeSelected”] imageWithRenderingMode:UIImageRenderingModeAlwaysOriginal];

tabBarItem2.image = [[UIImage imageNamed:@”TabBarIconWardrobe”] imageWithRenderingMode:UIImageRenderingModeAlwaysOriginal]; 
tabBarItem2.selectedImage = [[UIImage imageNamed:@”TabBarIconWardrobeSelected”] imageWithRenderingMode:UIImageRenderingModeAlwaysOriginal];

tabBarItem3.image = [[UIImage imageNamed:@”TabBarIconMyShop”] imageWithRenderingMode:UIImageRenderingModeAlwaysOriginal]; 
tabBarItem3.selectedImage = [[UIImage imageNamed:@”TabBarIconMyShopSelected”] imageWithRenderingMode:UIImageRenderingModeAlwaysOriginal];

tabBarItem4.image = [[UIImage imageNamed:@”TabBarIconPersonal”] imageWithRenderingMode:UIImageRenderingModeAlwaysOriginal]; 
tabBarItem4.selectedImage = [[UIImage imageNamed:@”TabBarIconPersonalSelected”] imageWithRenderingMode:UIImageRenderingModeAlwaysOriginal];

self.view.backgroundColor = [UIColor whiteColor];

}

-(void)viewDidAppear:(BOOL)animated{ 
[super viewDidAppear:animated]; 
}

#pragma mark - Segues

-(void)prepareForSegue:(UIStoryboardSegue *)segue sender:(id)sender { 
[super prepareForSegue:segue sender:sender]; 
if ([segue.identifier isEqualToString:@”SwitchToMyShopSegue”]) { 
[segue.destinationViewController setUserId:@”0”]; 
} else if ([segue.identifier isEqualToString:@”BaseOptionsSegue”]) { 
((BaseOptionsForCreationViewController*)segue.destinationViewController).isFromFloatingButton = YES; 
} 
}

@end

  

自定义Tabbar #iOS

标签:

原文地址:http://www.cnblogs.com/MyPage-Eric/p/4516728.html

(0)
(0)
   
举报
评论 一句话评论(0
登录后才能评论!
© 2014 mamicode.com 版权所有  联系我们:gaon5@hotmail.com
迷上了代码!