【问题标题】:Labels properties changing in Xcode在 Xcode 中更改标签属性
【发布时间】:2015-06-09 13:20:31
【问题描述】:

我编写了这段代码来通过不同的按钮改变不同标签的颜色
我是应用程序开发的新手,只是陷入了一些非常基础的问题:

-(IBAction)ButtonPressed:(id)sender
{
    UIButton *btn=sender;

    if(btn.tag==1)
    {
        lbl1.text=@"";
        lbl1.backgroundColor=[UIColor redColor];
    }
    if(btn.tag==2)
    {
        lbl2.text=@"";
        lbl2.backgroundColor=[UIColor greenColor];
    }
    else if(btn.tag==3)
    {
        lbl3.text=@"";
        lbl3.backgroundColor=[UIColor magentaColor];
    }
    else if(btn.tag==4)
    {
        lbl4.text=@"";
        lbl4.backgroundColor=[UIColor blueColor];
    }
    else if(btn.tag==5)
    {
        lbl5.text=@"";
        lbl5.backgroundColor=[UIColor brownColor];
    }
}

编写代码后,标签一的颜色只会发生变化。 我已经通过故事板连接了所有元素

【问题讨论】:

  • 您确定所有按钮都指向相同的触摸事件方法吗?标签设置为方法期望?
  • 使用断点检查是否所有按钮都调用了 buttonPressed 事件,使用控制台确保您的 if() 按预期工作,并且按钮在此函数中有适当的标签或至少 NSLog 标签,以查看是否有效如你所愿
  • 闻起来像开关盒的外壳
  • @GrzegorzKrukowski 实际上你是对的,你打对了所有按钮实际上并没有调用 ButtonPressed 事件我交叉检查但由于某种原因使用发件人标签方法也很有用,谢谢冷杉你的帮助:)
  • 没问题,很高兴能帮上忙。学习如何调试是更好的学习曲线的第一步:)

标签: ios objective-c iphone xcode uiviewcontroller


【解决方案1】:

这样试试

-(IBAction)ButtonPressed:(id)sender
    {
        NSInteger i = [sender tag];

        if(i==1)
        {
            lbl1.text=@"";
            lbl1.backgroundColor=[UIColor redColor];
        }
        if(i==2)
        {
            lbl2.text=@"";
            lbl2.backgroundColor=[UIColor greenColor];
        }
        else if(i==3)
        {
            lbl3.text=@"";
            lbl3.backgroundColor=[UIColor magentaColor];
        }
        else if(i==4)
        {
            lbl4.text=@"";
            lbl4.backgroundColor=[UIColor blueColor];
        }
        else if(i==5)
        {
            lbl5.text=@"";
            lbl5.backgroundColor=[UIColor brownColor];
        }
    }

或者简单

-(IBAction)ButtonPressed:(id)sender
    {
        if([sender tag]==1)
        {
            lbl1.text=@"";
            lbl1.backgroundColor=[UIColor redColor];
        }
        if([sender tag]==2)
        {
            lbl2.text=@"";
            lbl2.backgroundColor=[UIColor greenColor];
        }
        else if([sender tag]==3)
        {
            lbl3.text=@"";
            lbl3.backgroundColor=[UIColor magentaColor];
        }
        else if([sender tag]==4)
        {
            lbl4.text=@"";
            lbl4.backgroundColor=[UIColor blueColor];
        }
        else if([sender tag]==5)
        {
            lbl5.text=@"";
            lbl5.backgroundColor=[UIColor brownColor];
        }
    }

还要检查按钮的标签。

【讨论】:

  • 欢迎,只要有答案可以帮助您解决问题,请接受:)
【解决方案2】:

只替换这一行 UIButton *btn=sender;

with UIButton *btn = (UIButton *)sender;

【讨论】:

    猜你喜欢
    • 2011-06-13
    • 2018-09-03
    • 1970-01-01
    • 1970-01-01
    • 2020-05-16
    • 2021-07-23
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多