通过按钮的状态改变按钮的颜色
- (void)viewDidLoad {
[super viewDidLoad];
// Do any additional setup after loading the view, typically from a nib.
[self setupTitleView];
}
-(void)setupTitleView{
UIView *titleView = [[UIView alloc]initWithFrame:CGRectMake(0, 22, self.view.frame.size.width, 30)];
[self.view addSubview:titleView];
CGFloat titleBtnW = self.view.frame.size.width/5.0;
NSArray *titleArray = @[@"全部",@"视频",@"声音",@"图片",@"段子"];
for (int i=0; i<titleArray.count; i++) {
UIButton *titleBtn = [[UIButton alloc]initWithFrame:CGRectMake(i*titleBtnW, 0, titleBtnW, 30)];
[titleBtn setTitle:titleArray[i] forState:UIControlStateNormal];
[titleBtn setTitleColor:[UIColor darkGrayColor] forState:UIControlStateNormal];
[titleBtn setTitleColor:[UIColor redColor] forState:UIControlStateSelected];
[titleBtn addTarget:self action:@selector(titleBtnClick:) forControlEvents:UIControlEventTouchUpInside];
[titleView addSubview:titleBtn];
}
}
-(void)titleBtnClick:(UIButton*)titleBtn{
self.previousClickBtn.selected = NO;
titleBtn.selected = YES;
self.previousClickBtn = titleBtn;
}
如果想要在当前选中的按钮再次点击则刷新 则需要重写一个继承自UIButton的子类。重写下面的方法。让按钮不响应高亮状态。则按钮会在选中状态后再点击响应UIControlStateSelected状态的点击事件。否则高亮状态和选中状态重叠按钮会为normal状态。
- (void)setHighlighted:(BOOL)highlighted
{
// 只要重写了这个方法,按钮就无法进入highlighted状态
//不做任何操作就可以
}
标题栏的创建
最后编辑于 :
©著作权归作者所有,转载或内容合作请联系作者
- 文/潘晓璐 我一进店门,熙熙楼的掌柜王于贵愁眉苦脸地迎上来,“玉大人,你说我怎么就摊上这事。” “怎么了?”我有些...
- 文/花漫 我一把揭开白布。 她就那样静静地躺着,像睡着了一般。 火红的嫁衣衬着肌肤如雪。 梳的纹丝不乱的头发上,一...
- 文/苍兰香墨 我猛地睁开眼,长吁一口气:“原来是场噩梦啊……” “哼!你这毒妇竟也来了?” 一声冷哼从身侧响起,我...
推荐阅读更多精彩内容
- 这一节,我们将创建APP顶部通用的标题栏。这个东西项目中也很常用的,什么?你想不到什么是顶部通用标题栏,我给你找几...
- 本章实现效果: 前言: 项目中很多需求是要求自定义标题栏居中的,本人最近就遇到这中需求,如果用系统自带的title...
- 第一讲开始! 万事开头难,项目结构框架搭建是整个APP开发的头,是核心,是地基,只有结构搭建完成才能继续后面的工作...