1. 程式人生 > >解析tabbar中的凸起按鈕

解析tabbar中的凸起按鈕

你是否看到過這樣的tabbar:
這裡寫圖片描述

中間是一個凸起的tabbar,一開始博主這麼想的:
1.在tabbar上增加一個按鈕,但是我們知道,如果按鈕大小超出superView的範圍將會失去響應,這裡要注意,只是超出去的部分失去響應,未超出部分依然響應。也許不少人都這麼想過,但是在實際操作中會被pass掉。
2.封裝tabbar的時候讓tabbar高度高一些,雖然解決了問題,但實際上在突出部分到正常按鈕頂部的空白區域為不可點選區域,下面的檢視雖然可見,但卻不可點,雖然只有幾十畫素區域,但體驗上並不是很好,像這樣的:
這裡寫圖片描述
這塊紅色區域為不可點選區域。

3.這是一個可行方案,既然是封裝的tabbar,需要手動add到tabbar的VC,大多數封裝的都是這樣,何不算好距離,把凸起的按鈕直接加在tabbar的VC中:

  [_myTabbar creatLHHTabbarWithBackGroundImage:nil orUseBackGroundView:YES ifUseBGViewWithColor:[UIColor orangeColor] withViewControllerArray:_vcArray withNormalImageArray:_normalImageArray withSelectImageArray:_selectImagerray withTabbarItemTitleArray:_tabbarTitleArray withTarget:self withSelector:@selector(itemAction:)];
[_tabbar.view addSubview:_myTabbar]; [self.view addSubview:_tabbar.view]; //凸起按鈕 UIButton *tuBtn = [UIButton buttonWithType:UIButtonTypeContactAdd]; tuBtn.frame = CGRectMake(0, 0, 80, 80); tuBtn.layer.cornerRadius = 40; tuBtn.backgroundColor = [UIColor orangeColor]; tuBtn.center
= CGPointMake(self.view.bounds.size.width / 2, self.view.bounds.size.height - 40); [tuBtn addTarget:self action:@selector(tuAction) forControlEvents:UIControlEventTouchUpInside]; [self.view addSubview:tuBtn];

在建立tabbar的時候直接add到self.view上,覆蓋中間的空缺位置。但是其他幾個按鈕的位置需要提前算好,詳細的見程式碼:點選下載