iOS:查找具有相同标签的所有控件 [英] iOS: Find all controls with the same tag

查看:50
本文介绍了iOS:查找具有相同标签的所有控件的处理方法,对大家解决问题具有一定的参考价值,需要的朋友们下面随着小编来一起学习吧!

问题描述

我创建了一个带有12个按钮,12个较小的按钮和12个标签的情节提要.

I have created a storyboard with 12 buttons, 12 smaller buttons and 12 labels.

就是这样:

btnBig1.tag = 1
btnSmall1.tag = 1
lbl1.tag = 1

btnBig2.tag = 2
btnSmall2.tag = 2
lbl2.tag = 2

等...

现在调用过程时

- (IBAction)processButtonUpInside:(id)sender
{
     UIButton *nButton = (UIButton*)sender;
     int nInt =  nButton.tag;
}

...我想对所有3个控件(大按钮,小按钮和标签)进行操作.

... I would like to do something with all 3 controls (big button, small button and label).

它应该看起来像这样(伪代码):

It should look like this (pseudo-code):

- (IBAction)processButtonUpInside:(id)sender
{
     UIButton *nButton = (UIButton*)sender;
     int nInt =  nButton.tag;

     UIButton *nButtonBig (UIButton*)CastFromTagID(nInt)
     //do something with the big button

     UIButton *nButtonSmall (UIButton*)CastFromTagID(nInt)
     //do something with the small button

     UILabel *nLabel (UILabel*)CastFromTagID(nInt)
     //do something with the label

}

如您所见, CastFromTagID 是我的自己的发明".我不知道该怎么做.

As you can see, the CastFromTagID is my "own invention". I don't know how I should actually do this.

有人可以帮忙吗?非常感谢.

Can somebody help? Thank you very much.

推荐答案

您可以为每个按钮系列使用3个不同的起点:

You can use 3 a different starting point for each button family:

enum {
    kTagFirstBigButton = 1000,
    kTagFirstSmallButton = 2000,
    kTagFirstLabel = 3000,
}

使用标签分配标签:

btnBig1.tag = kTagFirstBigButton + 1;
btnSmall1.tag = kTagFirstSmallButton + 1;
lbl1.tag = kTagFirstLabel + 1;

btnBig2.tag = kTagFirstBigButton + 2;
btnSmall2.tag = kTagFirstSmallButton + 2;
lbl2.tag = kTagFirstLabel + 2;
...

现在很容易找到任何东西:

Now it's easy to find anything:

- (IBAction)processButtonUpInside:(id)sender
{
     UIButton *nButton = (UIButton*)sender;
     /* I'm not sure what button is `sender` here
        If it's a big or small one you can guess 
        comparing its tag with the first tag 
     */
     int offset =  nButton.tag;

     UIButton *nButtonBig = (UIButton*)[view viewWithTag:kTagFirstBigButton + offset];
     //do something with the big button

     UIButton *nButtonSmall = (UIButton*)[view viewWithTag:kTagFirstSmallButton + offset];
     //do something with the small button

     UILabel *nLabel = (UILabel*)[view viewWithTag:kTagFirstLabel + offset];
     //do something with the label
}

这篇关于iOS:查找具有相同标签的所有控件的文章就介绍到这了,希望我们推荐的答案对大家有所帮助,也希望大家多多支持IT屋!

查看全文
登录 关闭
扫码关注1秒登录
发送“验证码”获取 | 15天全站免登陆