IOS 定制中间突出UItabBar

代码实现

这里我借鉴了上文作者的代码,针对我的需要进行了封装,下面放代码:

 

?
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
//
//  TabBarViewController.m
//  tabBarViewController
//
//  Created by Bc_Ltf on 15/3/25.
//  Copyright (c) 2015年 Bc_ltf. All rights reserved.
//
 
# import TabBarViewController.h
 
@interface TabBarViewController ()<uitabbarcontrollerdelegate>
 
@end
 
@implementation TabBarViewController
@synthesize button;
@synthesize myTabBar;
 
- ( void )viewDidLoad {
     [ super viewDidLoad];
     [self setup];
 
 
}
 
- ( void )didReceiveMemoryWarning {
     [ super didReceiveMemoryWarning];
}
 
#pragma mark- setup
-( void )setup
{
     //  添加突出按钮
     [self addCenterButtonWithImage:[UIImage imageNamed: @main ] selectedImage:[UIImage imageNamed: @mainH ]];
     //  UITabBarControllerDelegate 指定为自己
     self.delegate=self;
     //  指定当前页——中间页
     self.selectedIndex= 2 ;
     //  设点button状态
     button.selected=YES;
     //  设定其他item点击选中颜色
     myTabBar.tintColor= [UIColor colorWithRed: 222 / 255.0 green: 78 / 255.0 blue: 22 / 255.0 alpha: 1 ];
}
 
 
#pragma mark - addCenterButton
// Create a custom UIButton and add it to the center of our tab bar
-( void ) addCenterButtonWithImage:(UIImage*)buttonImage selectedImage:(UIImage*)selectedImage
{
     button = [UIButton buttonWithType:UIButtonTypeCustom];
     [button addTarget:self action: @selector (pressChange:) forControlEvents:UIControlEventTouchUpInside];
     button.autoresizingMask = UIViewAutoresizingFlexibleRightMargin | UIViewAutoresizingFlexibleLeftMargin | UIViewAutoresizingFlexibleBottomMargin | UIViewAutoresizingFlexibleTopMargin;
     
     //  设定button大小为适应图片
     button.frame = CGRectMake( 0.0 , 0.0 , buttonImage.size.width, buttonImage.size.height);
     [button setImage:buttonImage forState:UIControlStateNormal];
     [button setImage:selectedImage forState:UIControlStateSelected];
     
     //  这个比较恶心  去掉选中button时候的阴影
     button.adjustsImageWhenHighlighted=NO;
     
     
     /*
      *  核心代码:设置button的center 和 tabBar的 center 做对齐操作, 同时做出相对的上浮
      */
     CGFloat heightDifference = buttonImage.size.height - self.tabBar.frame.size.height;
     if (heightDifference < 0 )
         button.center = self.tabBar.center;
     else
     {
         CGPoint center = self.tabBar.center;
         center.y = center.y - heightDifference/ 2.0 ;
         button.center = center;
     }
     
     [self.view addSubview:button];
}
 
-( void )pressChange:(id)sender
{
     self.selectedIndex= 2 ;
     button.selected=YES;
}
 
#pragma mark- TabBar Delegate
 
//  换页和button的状态关联上
 
- ( void )tabBarController:(UITabBarController *)tabBarController didSelectViewController:(UIViewController *)viewController
{
     if (self.selectedIndex== 2 ) {
         button.selected=YES;
     } else
     {
         button.selected=NO;
     }
}
 
@end
</uitabbarcontrollerdelegate>

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值