xcode – 在Swift中以编程方式设置Action Listener

xcode – 在Swift中以编程方式设置Action Listener,第1张

概述我看到一些示例代码,将相同的OnClick事件分配给Android中的所有按钮(即使它们执行完全不同的 *** 作).怎么可以用Swift呢? Android示例: @Override public void onCreate(Bundle savedInstanceState) { button1.setOnClickListener(onClickListener);


我看到一些示例代码,将相同的OnClick事件分配给AndroID中的所有按钮(即使它们执行完全不同的 *** 作).怎么可以用Swift呢?

AndroID示例:

@OverrIDe public voID onCreate(Bundle savedInstanceState) {        button1.setonClickListener(onClickListener);        button2.setonClickListener(onClickListener);        button3.setonClickListener(onClickListener);} private OnClickListener onClickListener = new OnClickListener() {     @OverrIDe      public voID onClick(VIEw v) {         switch(v.getID()){             case R.ID.button1:                  //DO something              break;              case R.ID.button2:                  //DO something              break;              case R.ID.button3:                  //DO something              break;          }    } };

注意:我不想以编程方式创建按钮.

解决方法 在iOS上,您没有设置监听器;您将UIControl(UIbutton是其子类)中的一个目标(一个对象)和一个动作(方法签名“iOS选项”中的选择符):

button1.addTarget(self,action: "buttonClicked:",for: .touchUpInsIDe)button2.addTarget(self,for: .touchUpInsIDe)button3.addTarget(self,for: .touchUpInsIDe)

第一个参数是目标对象,在这种情况下是self.动作是一个选择器(方法签名),基本上有两个选项(稍后再说). control event是一个特定于UIControl – .touchUpInsIDe通常用于点击一个按钮.

现在,行动.这是一种以下格式之一的方法(您的选择):

func buttonClicked()func buttonClicked(_ sender: AnyObject?)

要使用第一个使用“buttonClicked”,对于第二个(您要在此处)使用“buttonClicked”(带有冒号).发件人将是事件的来源,换句话说,您的按钮.

func buttonClicked(_ sender: AnyObject?) {  if sender === button1 {    // do something  } else if sender === button2 {    // do something  } else if sender === button3 {    // do something  }}

(这假设button1,button2和button3是实例变量).

而不是使用大开关语句的这种方法,请考虑为每个按钮使用单独的方法.根据您的具体用例,任何一种方法可能会更好:

func button1Clicked() {  // do something}func button2Clicked() {  // do something}func button3Clicked() {  // do something}

在这里,我甚至不使用发件人参数,因为我不需要它.

P.S .:不是以编程方式添加目标和 *** 作,您可以在Storyboard或nib文件中执行此 *** 作.为了公开您将IBAction放在您的功能前面的 *** 作,例如:

@IBAction func button1Clicked() {  // do something}
总结

以上是内存溢出为你收集整理的xcode – 在Swift中以编程方式设置Action Listener全部内容,希望文章能够帮你解决xcode – 在Swift中以编程方式设置Action Listener所遇到的程序开发问题。

如果觉得内存溢出网站内容还不错,欢迎将内存溢出网站推荐给程序员好友。

欢迎分享,转载请注明来源:内存溢出

原文地址:https://54852.com/web/1063964.html

(0)
打赏 微信扫一扫微信扫一扫 支付宝扫一扫支付宝扫一扫
上一篇 2022-05-26
下一篇2022-05-26

发表评论

登录后才能评论

评论列表(0条)

    保存