iOS 两个按钮切换显示不同状态和页面

本文介绍了一种在iOS应用中实现TabBar按钮切换时显示选中与未选中状态的方法。通过设置按钮背景图片及文字颜色来区分按钮的状态,并在点击事件中更新这些属性以实现视觉上的切换效果。

先看张效果图,略丑,见谅!

这里写图片描述

- (void)viewDidLoad {
    [super viewDidLoad];
    self.view.backgroundColor = [UIColor whiteColor];

    self.navigationController.navigationBar.translucent = NO;//不加 否则view的高度从最顶部开始


    float spaWidth = self.view.frame.size.width/2.0;

    UIButton *btn1 = [[UIButton alloc] initWithFrame:CGRectMake(0, 0, spaWidth, 40)];
    btn1.tag = 100;
    [btn1 setTitle:@"第一个" forState:UIControlStateNormal];
    [btn1 setTitleColor:[UIColor whiteColor] forState:UIControlStateNormal];
    [btn1 setBackgroundImage:[UIImage imageNamed:@"btn4_check.png"] forState:UIControlStateNormal];
    [btn1 setBackgroundImage:[UIImage imageNamed:@"btn4_check.png"] forState:UIControlStateHighlighted];
    [btn1 addTarget:self action:@selector(onClick:) forControlEvents:UIControlEventTouchUpInside];
    [self.view addSubview:btn1];


    UIButton *btn2 = [[UIButton alloc] initWithFrame:CGRectMake(spaWidth, 0, spaWidth, 40)];
    btn2.tag = 200;
    [btn2 setTitle:@"第二个" forState:UIControlStateNormal];
    [btn2 setTitleColor:[UIColor blackColor] forState:UIControlStateNormal];
    [btn2 setBackgroundImage:[UIImage imageNamed:@"btn4_uncheck.png"] forState:UIControlStateNormal];
    [btn2 setBackgroundImage:[UIImage imageNamed:@"btn4_check.png"] forState:UIControlStateHighlighted];
    [btn2 addTarget:self action:@selector(onClick:) forControlEvents:UIControlEventTouchUpInside];
    [self.view addSubview:btn2];


}

- (void)onClick:(UIButton *)sender{

    UIButton *btn1 = (UIButton *)[self.view viewWithTag:100];
    UIButton *btn2 = (UIButton *)[self.view viewWithTag:200];
    if (sender.tag == 100) {

        [btn1 setBackgroundImage:[UIImage imageNamed:@"btn4_check.png"] forState:UIControlStateNormal];
         [btn2 setBackgroundImage:[UIImage imageNamed:@"btn4_uncheck.png"] forState:UIControlStateNormal];
        [btn1 setTitleColor:[UIColor whiteColor] forState:UIControlStateNormal];
        [btn2 setTitleColor:[UIColor blackColor] forState:UIControlStateNormal];
    }else{

        [btn2 setBackgroundImage:[UIImage imageNamed:@"btn4_check.png"] forState:UIControlStateNormal];
        [btn1 setBackgroundImage:[UIImage imageNamed:@"btn4_uncheck.png"] forState:UIControlStateNormal];

        [btn2 setTitleColor:[UIColor whiteColor] forState:UIControlStateNormal];
        [btn1 setTitleColor:[UIColor blackColor] forState:UIControlStateNormal];
    }

}
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值