我想在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
它有效
答案 0 :(得分:5)
您没有创建UISwitch
。
替换它:
weak var useAuthenticationSwitch: UISwitch!
有了这个:
var useAuthenticationSwitch = UISwitch()
希望这有帮助。
答案 1 :(得分:-1)
你还没有解开UISwitch,因此useAuthenticationSwitch将是UISwitch类型的?而不是UISwitch。而是在视图didLoad中添加一个额外的代码,并让所有其他代码保持原样
func viewDidLoad() {
useAuthenticationSwitch = UISwitch()
}
现在随时随地使用它!