如何在UITableViewCell accessoryView中放置UISwitch?

时间:2015-08-04 10:13:19

标签: ios swift uitableview uiswitch

我想在UISwitch accessoryView UITableViewCell中放置一个cellForRowAtIndexPath,问题是如果我尝试将其放在Objective-C func中,它可以正常工作并且UISwitch正确创建并显示在UITableViewCell的右侧,相反,如果我在func之外创建它,它将无法正常工作。我需要在有趣的地方创建它,因为我需要在其他函数中检查UISwitch的状态并相应地执行代码。

我更好地解释了我的意思" 之外":@property(ies)Swift可以让你从当前的任何地方访问对象类文件,我们可以在import UIKit class ConfigurationViewController: UITableViewController, UITextFieldDelegate { weak var useAuthenticationSwitch: UISwitch! override func tableView(tableView: UITableView, cellForRowAtIndexPath indexPath: NSIndexPath) -> UITableViewCell { let cell = tableView.dequeueReusableCellWithIdentifier("reuseIdentifier", forIndexPath: indexPath) as! UITableViewCell if indexPath.section == 0 { if indexPath.row == 0 { cell.textLabel!.text = "Use Authentication" cell.accessoryView = useAuthenticationSwitch } } else { } return cell } } 中实现相同的功能吗?

这是我的代码:

cell.accessoryView = useAuthenticationSwitch

如果,而不是:

cell.accessoryView = UISwitch()

我用:

hdparm

它有效

2 个答案:

答案 0 :(得分:5)

您没有创建UISwitch

替换它:

weak var useAuthenticationSwitch: UISwitch!

有了这个:

var useAuthenticationSwitch = UISwitch()

希望这有帮助。

答案 1 :(得分:-1)

你还没有解开UISwitch,因此useAuthenticationSwitch将是UISwitch类型的?而不是UISwitch。而是在视图didLoad中添加一个额外的代码,并让所有其他代码保持原样

func viewDidLoad() {
   useAuthenticationSwitch = UISwitch() 
}

现在随时随地使用它!