在.h中声明一个全局变量来记录最后一次点击的按钮
{
UIButton *_selectdBtn;
}
.m中实现代码
- (void)viewDidLoad
{
[superviewDidLoad];
[selflayoutMyTabbar];
}
- (void)layoutMyTabbar{
UIView *bgView =[[UIViewalloc]initWithFrame:CGRectMake(0,self.view.frame.size.height -50,self.view.frame.size.width,50)];
[self .view addSubview:bgView];
for (int a =0; a <5; a++) {
UIButton *button =[UIButtonbuttonWithType:UIButtonTypeCustom];
button.tag =a+100;
button.frame =CGRectMake(a *320/5,0, 320/5,50);
NSString *str =[NSStringstringWithFormat:@"yuike_maintab%d",a+1];
NSString *selStr =[NSStringstringWithFormat:@"yuike_maintab%d1",a+1];
[button setImage:[UIImageimageNamed:str] forState:UIControlStateNormal];
[button setImage:[UIImageimageNamed:selStr] forState:UIControlStateSelected];
[button setImageEdgeInsets:UIEdgeInsetsMake(5,10, 5,10)];
第一次加载默认选择的按钮是第一个,让记录的button等于第一个按钮,并把记录按钮的选择属性设置为YES
_selectdBtn =(UIButton *)[self.viewviewWithTag:100];
_selectdBtn.selected=YES;
[button addTarget:selfaction:@selector(buttonClick:)forControlEvents:UIControlEventTouchUpInside];
[bgView addSubview:button];
}
}
-(void)buttonClick:(UIButton *)button{
判断点击的按钮与上次记录按钮是否是同一个,如果不是,就把记录按钮的选择属性设置为NO,并让记录按钮等于点击的按钮(这样是为选的按钮上的图片变为正常状态下的)
如果是同一个,将记录按钮的选择属性设为YES (这样再点击的时候按钮也还是点击后的图片)
if(button!=_selectdBtn)
{
_selectdBtn.selected=NO;
_selectdBtn=button;
}
_selectdBtn.selected=YES;
self.selectedIndex =button.tag -100;
}