我首先构建了一个没有笔尖的普通自定义单元格,它工作得很好。但是现在我需要在各种视图中重用相同的单元格布局,因此我尝试使用nib代替常规原型单元。 单元格显示,内部有信息。但我无法与之互动。例如,我无法在文本字段中书写。当我点击时,它只选择整个单元格(虽然我关闭了tableview选项中单元格的选择)。
我尝试了不同的方法来启动单元格,但它要么崩溃要么什么都不做。
这是我的代码:
CelluleView (自定义单元格)
class CelluleView: UITableViewCell {
override init(style: UITableViewCellStyle, reuseIdentifier: String?) {
super.init(style: style, reuseIdentifier: reuseIdentifier)
}
required init(coder aDecoder: NSCoder) {
super.init(coder: aDecoder)!
}
override func awakeFromNib() {
super.awakeFromNib()
}
}
的ViewController
class PersoViewController: UITableViewController {
override func viewDidAppear(animated: Bool) {
super.viewDidAppear(true)
}
override func viewDidLoad() {
super.viewDidLoad()
let nib = UINib(nibName: "CelluleView", bundle: nil)
tableView.registerNib(nib, forCellReuseIdentifier: "Cellule")
tableView.dataSource = self
tableView.delegate = self
self.tableView.separatorStyle = UITableViewCellSeparatorStyle.None
}
override func tableView(tableView: UITableView, numberOfRowsInSection section: Int) -> Int {
return 1
}
override func tableView(tableView: UITableView, cellForRowAtIndexPath indexPath: NSIndexPath) -> UITableViewCell {
let cellule = tableView.dequeueReusableCellWithIdentifier("Cellule", forIndexPath: indexPath) as! CelluleView
return cellule
}
}
答案 0 :(得分:2)
一种解决方案是在表格视图中启用选择。
将选择样式设置为无
override func awakeFromNib() {
super.awakeFromNib()
selectionStyle = UITableViewCellSelectionStyle.None
}
为文本字段创建一个插座
@IBOutlet weak var textField: UITextField!
并将其与笔尖
连接然后在单元格中响应选择并将文本字段设置为第一响应者
override func setSelected(selected: Bool, animated: Bool) {
super.setSelected(selected, animated: animated)
textField.becomeFirstResponder()
}