Warning: file_get_contents(/data/phpspider/zhask/data//catemap/4/maven/5.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Ios 如何为forControlEvents放置多个控件事件?_Ios_Objective C - Fatal编程技术网

Ios 如何为forControlEvents放置多个控件事件?

Ios 如何为forControlEvents放置多个控件事件?,ios,objective-c,Ios,Objective C,我看到上面写着forControlEvents(复数),意思是我可以放多个 但是,我不确定正确的语法是什么 相反,我只放置了两行与同一选择器对话的代码 [myLoginButton addTarget:self action:@selector(loginButtonScaleRelease) forControlEvents:UIControlEventTouchUpInside]; [myLoginButton addTarget:self action:@selector(loginBut

我看到上面写着forControlEvents(复数),意思是我可以放多个

但是,我不确定正确的语法是什么

相反,我只放置了两行与同一选择器对话的代码

[myLoginButton addTarget:self action:@selector(loginButtonScaleRelease) forControlEvents:UIControlEventTouchUpInside];
[myLoginButton addTarget:self action:@selector(loginButtonScaleRelease) forControlEvents:UIControlEventTouchUpOutside];

谁能给我解释一下吗?

我看你仍然在使用Objective-C而不是swift。它接受位掩码,所以请尝试

[myLoginButton addTarget:self action:@selector(loginButtonScaleRelease) forControlEvents:UIControlEventTouchUpInside | UIControlEventTouchUpOutside];

我看到你仍然在使用Objective-C而不是swift。它接受位掩码,所以请尝试

[myLoginButton addTarget:self action:@selector(loginButtonScaleRelease) forControlEvents:UIControlEventTouchUpInside | UIControlEventTouchUpOutside];

幸运的是,可以将多个控制事件放在同一个操作方法上。若您为按钮编写不同的操作(addTarget),它将执行不同的操作(您在选择器中编写的addTarget操作方法)。所以,在按钮内侧和按钮外侧进行润色的动作方法在这里起作用。因此,以下两个事件肯定有效

[myLoginButton addTarget:self action:@selector(loginButtonScaleRelease) forControlEvents:UIControlEventTouchUpInside];
[myLoginButton addTarget:self action:@selector(loginButtonScaleRelease) forControlEvents:UIControlEventTouchUpOutside];

幸运的是,可以将多个控制事件放在同一个操作方法上。若您为按钮编写不同的操作(addTarget),它将执行不同的操作(您在选择器中编写的addTarget操作方法)。所以,在按钮内侧和按钮外侧进行润色的动作方法在这里起作用。因此,以下两个事件肯定有效

[myLoginButton addTarget:self action:@selector(loginButtonScaleRelease) forControlEvents:UIControlEventTouchUpInside];
[myLoginButton addTarget:self action:@selector(loginButtonScaleRelease) forControlEvents:UIControlEventTouchUpOutside];

我建议学习Swift,因为Objective-C的使用似乎减少了很多。@幸运的是,这与Objective-C无关;您不了解位掩码,如果您移动到Swift.progressSlider.addTarget(self,action:#选择器(sliderTouchEvents),对于:UIControlEvents.valueChanged | UIControlEvents.touchUpInside),则不会更改。我得到的错误是:“|”不是后缀一元运算符,无法将“UIControlEvents”类型的值转换为预期的参数类型“UInt8”,请将“UIControlEvents.valueChanged”替换为“UInt8(UIControlEvents.valueChanged.rawValue)”,我建议学习Swift,因为Objective-C的使用似乎减少了很多。@幸运的是,这与Objective-C没有任何关系;您不了解位掩码,如果您移动到Swift.progressSlider.addTarget(self,action:#选择器(sliderTouchEvents),对于:UIControlEvents.valueChanged | UIControlEvents.touchUpInside),则不会更改。我得到的错误是:“|”不是后缀一元运算符,无法将“UIControlEvents”类型的值转换为预期的参数类型“UInt8”,请将“UIControlEvents.valueChanged”替换为“UInt8(UIControlEvents.valueChanged.rawValue)”