2 qq 33809905 qq_33809905 于 2016.01.27 17:48 提问

ios的tabbar问题求详细解答,这个tabbar下面的图标突出一块怎么做的。谢谢各位大神。
ios

图片

4个回答

Margaret_MO
Margaret_MO   2016.03.03 14:21
已采纳

自己自定义一个标签视图控制器吧:
自定义一个类继承自UITabBarController;
然后在该类的.m文件中自己写button和其点击事件间的切换

#import "MyTabBarController.h"

#define WIDTH (myView.frame.size.width / 4)
#define HEIGHT (myView.frame.size.height)

@interface MyTabBarController ()

//之前选中的按钮
@property(nonatomic, retain) UIButton *selectedBtn;

@end

@implementation MyTabBarController

  • (void)viewDidLoad {
    [super viewDidLoad];
    //删除现有的tabBar
    CGRect rect = self.tabBar.frame;
    [self.tabBar removeFromSuperview];

    //添加自己的视图
    UIView *myView = [[BaseView alloc] init];
    myView.backgroundColor = [UIColor whiteColor];
    myView.frame = rect;
    [self.view addSubview:myView];

    //主页发现按钮
    UIButton *findBtn = [UIButton buttonWithType:UIButtonTypeCustom];
    [findBtn setImage:[UIImage imageNamed:@"icon_home_n"] forState:UIControlStateNormal];
    [findBtn setImage:[UIImage imageNamed:@"icon_home_h"] forState:UIControlStateSelected];
    findBtn.tag = 1;
    findBtn.frame = CGRectMake(0, -20, WIDTH, HEIGHT); //y设成负值,高再设高一点就好了!!!
    //默认选中是发现按钮
    findBtn.selected = YES;
    [findBtn setTintColor:[UIColor colorWithRed:0.886 green:0.365 blue:0.247 alpha:1.000]];
    self.selectedBtn = findBtn;
    [myView addSubview:findBtn];

    UILabel *findLabel = [[UILabel alloc] initWithFrame:CGRectMake(WIDTH/2 -10, HEIGHT - 20, WIDTH, 20)];
    findLabel.text = @"发现";
    findLabel.textColor = [UIColor colorWithRed:0.804 green:0.325 blue:0.227 alpha:1.000];
    findLabel.font = [UIFont systemFontOfSize:10];
    findLabel.tag = 101;
    [myView addSubview:findLabel];
    [findLabel release];

    //搜索页
    UIButton *searchBtn = [UIButton buttonWithType:UIButtonTypeCustom];
    [searchBtn setImage:[UIImage imageNamed:@"icon_search_n"] forState:UIControlStateNormal];
    [searchBtn setImage:[UIImage imageNamed:@"icon_search_h"] forState:UIControlStateSelected];
    searchBtn.tag = 2;
    searchBtn.frame = CGRectMake(WIDTH, -20, WIDTH, HEIGHT);
    [myView addSubview:searchBtn];

    UILabel *searchLabel = [[UILabel alloc] initWithFrame:CGRectMake(WIDTH + WIDTH/2 -10, HEIGHT - 20, WIDTH, 20)];
    searchLabel.text = @"搜索";
    searchLabel.textColor = [UIColor grayColor];
    searchLabel.font = [UIFont systemFontOfSize:10];
    searchLabel.tag = 102;
    [myView addSubview:searchLabel];
    [searchLabel release];

    //收藏页
    UIButton *costBtn = [UIButton buttonWithType:UIButtonTypeCustom];
    [costBtn setImage:[UIImage imageNamed:@"iconfont-like"] forState:UIControlStateNormal];
    [costBtn setImage:[UIImage imageNamed:@"iconfont-like-selected"] forState:UIControlStateSelected];
    costBtn.tag = 3;
    costBtn.frame = CGRectMake(2 * WIDTH, -20, WIDTH, HEIGHT);
    [myView addSubview:costBtn];

    UILabel *collectLabel = [[UILabel alloc] initWithFrame:CGRectMake(2 * WIDTH + WIDTH/2 -10, HEIGHT - 20, WIDTH, 20)];
    collectLabel.text = @"收藏";
    collectLabel.textColor = [UIColor grayColor];
    collectLabel.font = [UIFont systemFontOfSize:10];
    collectLabel.tag = 103;
    [myView addSubview:collectLabel];
    [collectLabel release];

    //设置页
    UIButton *setUpBtn = [UIButton buttonWithType:UIButtonTypeCustom];
    [setUpBtn setImage:[UIImage imageNamed:@"icon_setting_n"] forState:UIControlStateNormal];
    [setUpBtn setImage:[UIImage imageNamed:@"icon_setting_h"] forState:UIControlStateSelected];
    setUpBtn.tag = 4;
    setUpBtn.frame = CGRectMake(3 * WIDTH, -20, WIDTH, HEIGHT);
    [myView addSubview:setUpBtn];

    UILabel *setUpLabel = [[UILabel alloc] initWithFrame:CGRectMake(3 * WIDTH + WIDTH/2 -10, HEIGHT - 20, WIDTH, 20)];
    setUpLabel.text = @"设置";
    setUpLabel.textColor = [UIColor grayColor];
    setUpLabel.font = [UIFont systemFontOfSize:10];
    setUpLabel.tag = 104;
    [myView addSubview:setUpLabel];
    [setUpLabel release];

    for (int i = 1; i <4; i++) {
    UIButton *btn = [self.view viewWithTag:i];
    [btn addTarget:self action:@selector(clickBtn:) forControlEvents:UIControlEventTouchUpInside];
    }
    }

#pragma mark -- 自定义tabBar按钮的点击事件
-(void)clickBtn:(UIButton *)sender {
//设置上一个按钮
self.selectedBtn.selected = NO;
UILabel *titleFormer = [self.view viewWithTag:self.selectedBtn.tag + 100];
titleFormer.textColor = [UIColor grayColor];

//设置选中状态
sender.selected = YES;
self.selectedBtn = sender;
UILabel *titleNow = [self.view viewWithTag:self.selectedBtn.tag + 100];
titleNow.textColor = [UIColor colorWithRed:0.804 green:0.325 blue:0.227 alpha:1.000];

//跳转相应的视图控制器
self.selectedIndex = sender.tag - 1;

}

qq_33809905
qq_33809905 谢谢
2 年多之前 回复
oyljerry
oyljerry   Ds   Rxr 2016.01.27 18:13

自己放ImageView等,把图片贴过去

dd90702
dd90702   2016.01.29 16:45

点击的时候将图片的frame变大不就行了

TonyShanM
TonyShanM   2016.01.29 22:37

自己在 tabbar 上添加一个 比 tabbar 稍高一点的view, 在 view 上添加四个按钮,把每个按钮的图片设置成图中需要的小猴子图片,点击按钮的时候去通知控制器改变 tabbar

Csdn user default icon
上传中...
上传图片
插入图片
准确详细的回答,更有利于被提问者采纳,从而获得C币。复制、灌水、广告等回答会被删除,是时候展现真正的技术了!
其他相关推荐
iOS 自定义tabtabbar 中间按钮凸起
demo :http://download.csdn.net/detail/knowingnow/9447891
实现Tabbar的中间按钮向上突出的两种方法
1.设置 UITabBarController //  初始化菜单栏     UITabBarController *tabC = [[UITabBarController alloc]init];     UINavigationController *main_NV = [[UINavigationController alloc]initWithRootViewCo
iOS开发 - 解析tabbar中的凸起按钮
你是否看到过这样的tabbar: 中间是一个凸起的tabbar,一开始博主这么想的: 1.在tabbar上增加一个按钮,但是我们知道,如果按钮大小超出superView的范围将会失去响应,这里要注意,只是超出去的部分失去响应,未超出部分依然响应。也许不少人都这么想过,但是在实际操作中会被pass掉。 2.封装tabbar的时候让tabbar高度高一些,虽然解决了问题,但实际上在突出部分到正常按
iOS自定义tabbar,中间按钮凸起
在git上看到的自定义tabbar,比较流行的中间凸起
iOS 自定义 中间带突起圆形的tabbar
【原】ios的hitTest方法以及不规则区域内触摸事件处理方法 概述 在正常的使用场景中,我们处理了比较多的矩形区域内触摸事件,比如UIButton、UIControl。一般来说,这些控件的图形以及触摸区域都是矩形或者圆角矩形的。但是在一些特殊应用场景中我们有时不得不面对这样一种比较严苛的需求,比如要求程序只对某个圆形、五角形等非常规区域的点击事件进行处理,这就需要花
iOS Tabbar中间添加凸起按钮
前言 最近的项目中有需求在tabbar中间添加凸起按钮,并且点击时按钮要旋转,看了仿斗鱼的凸起,点击后是present出来View,而不是像常规的tabbar上添加一个页面,所以不符合要求,经过一段摸索最后得的一个比较好的效果,下面看效果图 需求分析 tabbar有5个item,每个对应一个页面 中间item为凸起按钮 中间按钮点击后旋转 效果实现 设置5个item 我们一步步来解决这个问题,
iOS-TabBar中间凸起点击完全有反应
先看下效果 仿闲鱼.png 为什么还要继续说这个内容呢? 前一段微博上很火的tabbar封装大赛想必大家都知道吧,各位大神尽其所能自己正在仿写闲鱼,看了网上一些朋友写的关于tabbar中间按钮的处理,发现关于处理中间按钮的点击这块有点模糊个人估计是大家在写这一块的时候忽略了这个细节 有的是中间按钮凸起的部分点击没有反应,按钮其他地方可以点击有的是中间凸起按钮可以完全点击
IOS 定制中间突出UItabBar
前言:        公司的项目需要定制一个中间突出的TabBar,在github 上找到一份可以参考的代码(虽然是四年前的,但是还是很有参考价值)。 网址:https://github.com/boctor/idev-recipes/tree/master/RaisedCenterTabBar。作者的readme文档写的很好,这里给出翻译(很不错的思路哦) 先看看效果: 思
UITabBar实现中间大按钮
原理非常简单,把中间tab bart item的图设为一个大图就可以了。 缺点就是超出tab bar的部分是不能点击的。 //设置tab bar 中间item的图为大图标     UIViewController* vc = [UIViewController new]; UINavigationController* nav = [[UINavi
IOS实现中间凸起圆形TabBar
IOS实现中间凸起圆形TabBar,类似于闲鱼的效果