Switch中的TableView中的UISwitch

时间:2015-03-30 19:49:14

标签: swift tableview uiswitch

Hello其他程序员!我有一个需要帮助的挑战。我使用Custom Style Cell构建了一个表。

此单元格只有LabelUISwitch。标签显示名称,交换机显示他们是否是管理员。这非常有效。我的挑战是如何以及在何处将代码置于更改开关时作出反应。

因此,如果我点击开关将其从关闭更改为打开,我可以在哪里打印人名?如果我可以得到打印的名称,我可以自己做php / sql代码。谢谢,这是我的代码片段。

override func tableView(tableView: UITableView, cellForRowAtIndexPath indexPath: NSIndexPath) -> UITableViewCell {

    let cell: UITableViewCell = tableView.dequeueReusableCellWithIdentifier(kCellIdentifier) as UITableViewCell
    let admin = self.admin[indexPath.row]

    let text1a = admin.FirstName
    let text1aa = " "

    let text1b = admin.LastName
    let text1 = text1a + text1aa + text1b
    (cell.contentView.viewWithTag(1) as UILabel).text = text1

    if admin.admin == "yes" {
        (cell.contentView.viewWithTag(2) as UISwitch).setOn(true, animated:true)

    } else if admin.admin == "no" {
        (cell.contentView.viewWithTag(2) as UISwitch).setOn(false, animated:true)
    }

    return cell
}

3 个答案:

答案 0 :(得分:7)

您必须在自定义表格视图单元格中设置操作以处理UISwitch中的更改并对其中的更改作出反应,请参阅以下代码:

class CustomTableViewCell: UITableViewCell {

     @IBOutlet weak var label: UILabel!

     @IBAction func statusChanged(sender: UISwitch) {
         self.label.text = sender.on ? "On" : "Off"
     }
}

以上示例仅用于更改UILabel关于UISwitch状态的文本,您必须根据您的要求更改它。我希望这能帮到你。

答案 1 :(得分:0)

你需要在YOUR_CUSTOM_CELL中听取UISwitch的.ValueChanged做出一些决定。在那里你可以捕捉到“打印”你的数据。

答案 2 :(得分:0)

埃里克,

在tableview生命周期的某个时刻,您需要使用目标/操作配置表格单元格中的每个UISwitch。

https://developer.apple.com/library/ios/documentation/UIKit/Reference/UIControl_Class/index.html#//apple_ref/occ/instm/UIControl/addTarget:action:forControlEvents

action告诉UISwitch实例当用户翻转开关时它应该调用什么方法。 target告诉UISwitch实例托管该方法的对象是什么。

通常,您将使用UITableViewController(或UIViewController)子类作为目标。