Objective c 当只设置一个iAction时,如何在代码中识别UISwitch的实例?
假设您在故事板上放置了2个Objective c 当只设置一个iAction时,如何在代码中识别UISwitch的实例?,objective-c,ios,Objective C,Ios,假设您在故事板上放置了2个ui开关对象。它们中的每一个都可以处于打开或关闭状态 进一步假设iAction设置为将情节提要与代码链接: - (IBAction)activityTurnedOn:(UISwitch*) activitySwitch; 问题: 是否有一种方法可以识别我在代码中使用的许多UISwitch对象中的每一个,以知道哪一个刚刚打开或关闭?是否有一个属性可以通过Interface Builder分配,我可以在代码中测试它?是的,在Interface Builder中设置对象标
ui开关对象。它们中的每一个都可以处于打开或关闭状态
进一步假设iAction
设置为将情节提要与代码链接:
- (IBAction)activityTurnedOn:(UISwitch*) activitySwitch;
问题:
是否有一种方法可以识别我在代码中使用的许多UISwitch
对象中的每一个,以知道哪一个刚刚打开或关闭?是否有一个属性可以通过Interface Builder分配,我可以在代码中测试它?是的,在Interface Builder中设置对象标记,然后您可以在代码中检索它:如果(activitySwitch.tag==1).
是的,在Interface Builder中设置对象标记,然后您可以在代码中检索它:如果(activitySwitch.tag==1)…我假定您不能为这些开关分配不同的插座
- (这不是黑客攻击)您可以为每个属性分配“tag”属性,并在activityTurnedOn:方法中检查它
- (这是一个黑客)你还可以检查一些奇怪的参数,比如开关的y位置
- (可能也不可能)您可以创建UISwitch的几个子类,并为开关分配不同的类
我假设您不能为这些开关分配不同的插座
- (这不是黑客攻击)您可以为每个属性分配“tag”属性,并在activityTurnedOn:方法中检查它
- (这是一个黑客)你还可以检查一些奇怪的参数,比如开关的y位置
- (可能也不可能)您可以创建UISwitch的几个子类,并为开关分配不同的类
您将每个开关作为一个出口,然后检查activitySwitch==
您的出口变量。我发现这使得代码比使用标记更具可读性,并且您通常希望从其他地方更改交换机的状态,因此最终需要插座 您将每个开关作为一个出口,然后检查您的出口变量是否为activitySwitch==
。我发现这使得代码比使用标记更具可读性,并且您通常希望从其他地方更改交换机的状态,因此最终需要插座 您可以在.h文件中指定2个IBOutlet,如下所示:
IBOutlet UISwitch *firstSwitch;
IBOutlet UISwitch *secondSwitch;
在您的方法中,请执行以下操作:
- (IBAction)activityTurnedOn:(UISwitch*) activitySwitch {
if (activitySwitch == firstSwitch) {
} else if (activitySwicth == secondSwitch) {
}
}
或者,您可以在nib文件中将标记分配给交换机(因为它们源自UIView),并执行以下操作:
您可以在.h文件中指定2个IBOutlet,如下所示:
IBOutlet UISwitch *firstSwitch;
IBOutlet UISwitch *secondSwitch;
在您的方法中,请执行以下操作:
- (IBAction)activityTurnedOn:(UISwitch*) activitySwitch {
if (activitySwitch == firstSwitch) {
} else if (activitySwicth == secondSwitch) {
}
}
或者,您可以在nib文件中将标记分配给交换机(因为它们源自UIView),并执行以下操作:
我喜欢这个。如何从界面生成器中执行此操作?或者您可以在代码中使用“switch1.tag=239;switch2.tag=240;”。这是一个简单的整数。为了使用switch1.tag=something
,我需要每个开关都有单独的插座,对吗?也许你可以通过另一个参数在某处区分这些开关?在那里安装。但是,通常是的,你需要这样的outletsI。如何从界面生成器中执行此操作?或者您可以在代码中使用“switch1.tag=239;switch2.tag=240;”。这是一个简单的整数。为了使用switch1.tag=something
,我需要每个开关都有单独的插座,对吗?也许你可以通过另一个参数在某处区分这些开关?在那里设置它们。但是,通常是的,你需要outlets。我试图避免对每个对象使用单独的IBOultet
。我还没有写完我的答案。现在检查一下。我试图避免对每个对象使用单独的IBOultet
。我还没有写完我的答案。现在检查一下。