Как ждать N секунд между утверждениями в Scala?

UPDATE: получение индексной ячейки ячейки, содержащей кнопку (оба раздела и строка):

Использование позиции кнопки

Внутри вашего метода buttonTapped вы можете захватить кнопки, преобразуйте его в координату в таблицеView, затем получите indexPath строки в этой координате.

func buttonTapped(_ sender:AnyObject) {
    let buttonPosition:CGPoint = sender.convert(CGPoint.zero, to:self.tableView)
    let indexPath = self.tableView.indexPathForRow(at: buttonPosition)
}

ПРИМЕЧАНИЕ. Иногда вы можете запускать ребро при использовании функции view.convert(CGPointZero, to:self.tableView) приводит к обнаружению nil для строки в точке, даже если там есть таблица tableView. Чтобы исправить это, попробуйте передать реальную координату, которая слегка смещена от начала координат, например:

let buttonPosition:CGPoint = sender.convert(CGPoint.init(x: 5.0, y: 5.0), to:self.tableView)

Предыдущий ответ: использование свойства Tag (только возвращает строку)

Вместо поднимаясь в деревья супервизора, чтобы захватить указатель на ячейку, которая содержит UIButton, существует более безопасная, более повторяемая техника, использующая свойство button.tag, упомянутое выше в Антонио, описанное в этом ответе , и показано ниже:

В cellForRowAtIndexPath: вы установили свойство тега:

button.tag = indexPath.row
button.addTarget(self, action: "buttonClicked:", forControlEvents: UIControlEvents.TouchUpInside)

Затем в функции buttonClicked: вы ссылаетесь на этот тег, чтобы захватить строку indexPath, где кнопка находится:

func buttonClicked(sender:UIButton) {
    let buttonRow = sender.tag
}

Я предпочитаю этот метод, так как я обнаружил, что поворот в деревьях супервизора может быть рискованным способом разработки приложения. Кроме того, для object-C я использовал эту технику в прошлом и был доволен результатом.

22
задан jopasserat 26 June 2017 в 14:18
поделиться