自定义TabBar第一种方案
自定义tabBar能够解决自定义图片无法显示(只显示一块颜色)这个弊端,自定义tabBar要继承UITabBarController
原图片:
(1), (2),(3), (4),(5)
下面是自定义了一个TabBar ,每个按钮可以显示图片(自定义避免了图片无法显示只显示一块颜色)
效果图:
代码实现:
- (void)loadViewController
{
CoverCollectionViewController*coverVC = [[CoverCollectionViewControlleralloc]init];
coverVC.title=@"每日封面";
CustomizedNavigationController*coverNaVC = [[CustomizedNavigationControlleralloc]initWithRootViewController:coverVC];
coverNaVC.navigationItem.title=@"iDailyWATCh";
NewsTableViewController*newsVC = [[NewsTableViewControlleralloc]init];
newsVC.title=@"腕表杂志";
CustomizedNavigationController*newsNaVC = [[CustomizedNavigationControlleralloc]initWithRootViewController:newsVC];
BrandsTableViewController*brandsVC = [[BrandsTableViewControlleralloc]init];
brandsVC.title=@"品牌维基";
CustomizedNavigationController*brandsNaVC = [[CustomizedNavigationControlleralloc]initWithRootViewController:brandsVC];
VideosCollectionViewController*videosVC = [[VideosCollectionViewControlleralloc]init];
videosVC.title=@"视频";
CustomizedNavigationController*videosNaVC = [[CustomizedNavigationControlleralloc]initWithRootViewController:videosVC];
MoreViewController*moreVC = [[MoreViewControlleralloc]init];
moreVC.title=@"更多";
CustomizedNavigationController*moreNaVC = [[CustomizedNavigationControlleralloc]initWithRootViewController:moreVC];
self.viewControllers=@[coverNaVC, newsNaVC, brandsNaVC, videosNaVC, moreNaVC];
//使用的宏释放内存:(#define RELEASE_SAFE(_Pointer) do{[_Pointer release],_Pointer = nil;}while(0)
)
RELEASE_SAFE(coverNaVC);
RELEASE_SAFE(coverVC);
RELEASE_SAFE(brandsNaVC);
RELEASE_SAFE(brandsVC);
RELEASE_SAFE(videosNaVC);
RELEASE_SAFE(videosVC);
RELEASE_SAFE(moreNaVC);
RELEASE_SAFE(moreVC);
}
- (void)loadCustomizedTabBarView
{
//初始化自定义TabBar背景
UIImageView*tabBarBG = [[UIImageViewalloc]initWithFrame:CGRectMake(0,519,320,49)];
tabBarBG.userInteractionEnabled=YES;
tabBarBG.p_w_picpath= [UIImagep_w_picpathNamed:@"background"];
[self.viewaddSubview:tabBarBG];
[tabBarBGrelease];
//初始化自定义TabBarItem -> Button
for(intindex =0; index <5; index++) {
UIButton*button = [UIButtonbuttonWithType:UIButtonTypeSystem];
button.backgroundColor= [UIColorwhiteColor];
button.tag= index;
NSString*p_w_picpathName = [NSStringstringWithFormat:@"%d", index +100];
[buttonsetBackgroundImage:[UIImagep_w_picpathNamed:p_w_picpathName]forState:UIControlStateNormal];
button.frame=CGRectMake(3+64* index,5,290/5,39);
[tabBarBGaddSubview:button];
[buttonaddTarget:selfaction:@selector(changeViewController:)forControlEvents:UIControlEventTouchUpInside];
}
}
//实现对应按钮和页面的跳转
- (void)changeViewController:(UIButton*)button
{
self.selectedIndex= button.tag;
}
声明:本站所有文章资源内容,如无特殊说明或标注,均为采集网络资源。如若本站内容侵犯了原著者的合法权益,可联系本站删除。