当前位置: 首页 > 面试题库 >

在tableviewcell的附件视图中的UISwitch,通过选择器传递参数以具有选择器功能,请参见indexpath.row?

松安民
2023-03-14
问题内容

UISwitch在tableviewcontroller中有一个,当切换开关时,我希望它更改在单元格相关的视图控制器内部创建的数组中的布尔变量的值。有点像IOS上的Stock
Alarm
App,其中每个单元都有一个UISwitch,并且拨动该开关将关闭每个单独的警报。因此,使用UISwitch,其选择器代码位于cellForRowAtIndexPath方法内部

//switch
    let lightSwitch = UISwitch(frame: CGRectZero) as UISwitch
    lightSwitch.on = false
    lightSwitch.addTarget(self, action: #selector(switchTriggered), forControlEvents: .ValueChanged)
    //lightSwitch.addTarget(self, action: "switchTriggered", forControlEvents: .ValueChanged )

    cell.accessoryView = lightSwitch

我希望它做到这一点

func switchTriggered(a: Int) {
    changeValueOfArray = array[indexPath.row]
}

我还没有为那部分编写代码,但是我的问题是,如何让switchTriggered函数看到该indexPath.row值,而不将其作为参数传递给该函数,因为我不能因为它的选择器?


问题答案:
let lightSwitch = UISwitch(frame: CGRectZero) as UISwitch
    lightSwitch.on = false
    lightSwitch.addTarget(self, action: #selector(switchTriggered), forControlEvents: .ValueChanged)
    lightSwitch.tag = indexpath.row
    cell.accessoryView = lightSwitch

让我们将布尔值保存在数组中

    func switchTriggered(sender: UISwitch) {
      sender.on ? array[sender.tag]=1 : array[sender.tag]=0
     }
}


 类似资料:
  • 问题内容: 我有两个标签,Label1和Label2。我想通过创建两个标签的UITTapRecognizer创建UITTapRecognizer,以使用传递参数的选择器来调用同一个函数,从而使打印出哪个标签的功能单一。下面是完成此操作的漫长方法,虽然比较麻烦,但可以正常工作。如果我知道如何将参数(Int)传递给选择器,那将是一个更干净的选择。 有没有办法修改选择器方法,以便我可以做类似的事情 问题

  • 问题内容: 我正在以编程方式将UITapGestureRecognizer添加到我的视图之一: 我遇到的第一个问题是“’#selector’的参数未引用’@Objc’方法,属性或初始化程序。 很酷,所以我在handleTap签名中添加了@objc: 现在,我收到错误消息“无法将方法标记为@objc,因为无法在Objective-C中表示参数的类型。 它只是建筑物地图的图像,其中一些图钉图像指示了兴

  • 问题内容: func locationManager(_ manager: CLLocationManager, didUpdateLocations locations: [CLLocation]) { guard let mostRecentLocation = locations.last else { return } 我想每1分钟将数据发送到服务器。我正在使用Timer.schedule

  • 问题内容: 问题: 无法从CSS选择器特定元素中选择。需要验证注册用户是否可以成功更改其密码。我试过了类的不同属性来调用它。当尝试前两个示例时,结果是方法中的异常错误。最后的尝试将调用第一个类实例并重置密码字段(失败)。 尝试过: 目的: 我需要选择共享同一班级的项目。如下所示,该类是共享的。 问题答案: 编辑:因为选择器需要一个,或,但是它们本身都不是。 提供要匹配的类名,并从那里指定要选择的特

  • 当我将参数嵌入到下面的路径中时,我可以成功地传递参数 我应该使用‘参数’tabe只有当我做POST方法?我知道向JMeter传递参数是一个简单的问题,但我不能解决我的问题。

  • 问题内容: 在中,您可以使用来指定用于格式化字符串的参数。这允许在任意位置多次使用参数。 有没有办法用标准的Java做到这一点? 问题答案: 是。您可以定义参数的索引,请参阅API的“ 参数索引” 部分。 例如: 输出量 注意 以下所有习语都共享相同的格式定义: