У меня есть tableView с разными строками. Большинство из них заполнены клетками, которая содержит TextFields, последний из которых является клетка, которая содержит UIStackView, в котором отображаются два UIButtons. В принципе, моя цель состоит в том, чтобы иметь Tableview, что работает, как формы, каждый из которых строк будут принимать некоторую информацию и, наконец, когда пользователь нажимает одну из двух кнопок в нижней части всей информация сохраняется (другая кнопка должна отменить операцию и получитьвернуться к предыдущему виду). Теперь все текстовые поля работают хорошо, и в «холостом» состоянии, кнопки работают слишком хорошо, и делать то, что им нужно сделать
1002 * Проблема заключается в следующем:. В то время как в режиме одного из TextField редактированияЕсли я нажимаю одну из кнопок внизу, они выделяются (что-то происходит), но они НЕ выполняют своих действий. Далее происходит то, что клавиатура отклоняется (textField перестает быть первым респондентом), и все возвращаются в «состояние ожидания». В этот момент кнопки возвращаются в рабочее состояние (поэтому при повторном нажатии они выполняют свои действия и т. Д.). 1004 * Я хотел бы, чтобы они работали, даже если фокус находится на режиме редактирования других клеток, и я не хочу, чтобы пользователь был вынужден щелкать два раза на ту же кнопку. Что я могу сделать?
Я перепробовал все возможные свойства как tableView, UIButtons и даже StackView (таким образом, «isInteractionEnabled», «AllowsMultipleSelectionWhileEditing», «delaysContentTouches» и т. Д., «BringSubviewToFront» ..)Понятия не имею, почему кнопка подсвечивается, но не работает.
1008 * Существует также tapGestureRecognizer в смеси, но это, кажется, не увлекаться (напечатать что-то каждый раз, когда вызывается, а это не так). 1010 *
Вот мой код В INIT: миниатюрный элемент питания.
modButton.addTarget(self, action: #selector(modClicked()), for: .touchUpInside)
saveButton.addTarget(self, action: #selector(saveClicked()), for: .touchUpInside)
//some other properties of the buttons
buttonStack.alignment = .center
buttonStack.axis = .horizontal
buttonStack.distribution = .equalSpacing
buttonStack.translatesAutoresizingMaskIntoConstraints = false
buttonStack.addArrangedSubview(modButton)
buttonStack.addArrangedSubview(saveButton)
addSubview(buttonStack)
//some constraints
В методе viewDidLoad: 1022
let tap: UITapGestureRecognizer = UITapGestureRecognizer(target: self, action: #selector(screenTouched))
tap.cancelsTouchesInView = false
view.addGestureRecognizer(tap)
//some properties i've tried
tableView.delegate = self
tableView.dataSource = self
tableView.separatorColor = .clear
tableView.isScrollEnabled = false
tableView.delaysContentTouches = false
tableView.allowsSelection = true
tableView.allowsSelectionDuringEditing = true
tableView.allowsMultipleSelectionDuringEditing = true
В методе tableView cellForRow:
// at the right indexPath:
let cell = tableView.dequeueReusableCell(withIdentifier: "buttoncell", for: indexPath) as! ButtonCell
//some properties i've tried
cell.buttonStack.bringSubviewToTop
cell.buttonStack.isUserInteractionEnabled = true
cell.buttonStack.allowsMultipleInteraction = true
cell.modButton.isUserInteractionEnabled = true
//etc..
return cell