TabBar添加中间自定义按钮

作者: 昵称太难取啦 | 来源:发表于2017-03-09 23:19 被阅读58次

有时候APP会有标题这样的需求,看了一些demo 感觉实现的都比较复杂(当然人家写的都是很精致的),于是自己就用简单的方法实现了下基本的需求.

效果如图:

具体实现通过自定义UITabBarController和UITabBar

如下图:

在TabBarController中将系统的TabBar指向我们定义的

代码如下:

WJTabBar *bar  =[WJTabBar new];

[self setValue:bar forKey:@"tabBar"];

然后在Tabbar中申明自定义的按钮

 @property(nonatomic,weak) UIButton *customCenterButton;

实现思路是:首先判断是否有自定义的按钮 如果有的话就重新布局tabbar的UITabBarButton位置 如果没有就不改变。

通过Xcode的界面分析,可以看到TabBar下面的SubView,我们需要改变的是UITabBarButton。

剩下的就是怎么布局的问题,在layoutSubviews中重新布局,代码如下:

到这里基本上能实现需求,但是当自定义的按钮高度超过Tabbar的时候,超过的部分是无法响应点击事件的,解决方法也很简单,如下代码

//让超过tabbar高度的部分也能点击

- (UIView *)hitTest:(CGPoint)point withEvent:(UIEvent *)event{

if (_customCenterButton) {

//如果点击的点位于_customCenterButton内就返回_customCenterButton

if (CGRectContainsPoint(_customCenterButton.frame, point)) {

return _customCenterButton;

}

}

return [super hitTest:point withEvent:event];

}

到这基本能满足大部分的需求了,

相关文章

网友评论

    本文标题:TabBar添加中间自定义按钮

    本文链接:https://www.haomeiwen.com/subject/zmsflttx.html