Я делаю планировщик, используя табличный вид. Когда пользователь нажимает клавишу ввода после ввода задания, кнопка должна появиться слева от задачи.Как добавить subview в UITableViewCell
Метод TextFieldShouldReturn в моем классе ViewController добавляет кнопку, но не всегда в левом верхнем углу экрана. Я его настроить так:
func textFieldShouldReturn(_ textField: UITextField) -> Bool {
let cell = tableView.dequeueReusableCell(withIdentifier: "cell")! as! TextInputTableViewCell
self.view.addSubview(cell.cellButton) // puts a button in a wrong location, button doesn't respond to any action
cell.addSubview(cell.cellButton)
tableViewData.append(textField.text!)
lastItem = tableViewData.count
print(tableViewData)
print(lastItem)
self.tableView.reloadData() //update row count and array count
textField.resignFirstResponder()
return true
}
self.view.addSubview(cell.cellButton)
добавляет кнопку к просмотру, но кнопка не появляется в нужном месте (я пытался переместить местоположение с помощью раскадровки, но он ничего не делает). Кроме того, кнопка не отвечает на соответствующее действие клика, которое объявлено в подклассе.
func tableView(_ tableView: UITableView, cellForRowAt indexPath: IndexPath) -> UITableViewCell
{
let cell = self.tableView.dequeueReusableCell(withIdentifier: "cell")! as! TextInputTableViewCell
cell.textField.delegate = self
...
return cell
}
Любая помощь приветствуется. Дайте мне знать, если я не слишком ясен.
Хмм вы могли бы дать некоторый код/псевдокод о том, как это сделать? Я использую только один экземпляр textField для практически всех строк, который, кажется, работает нормально – brownmamba
Поделитесь больше кода? Я думаю, что вы ошибаетесь, каждая ячейка должна иметь собственный экземпляр текстового поля. Возможно, вам не хватает ключевых понятий о том, как ячейки повторно используются и как они работают. Попробуйте поставить точку останова в методе делегата, и вы увидите, что тект-поля различны. – JDM