解析tabbar中的凸起按鈕
阿新 • • 發佈:2019-01-01
你是否看到過這樣的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上,覆蓋中間的空缺位置。但是其他幾個按鈕的位置需要提前算好,詳細的見程式碼:點選下載