Задержка смены тени при нажатии кнопки - PullRequest
0 голосов
/ 27 апреля 2019

У меня есть кнопка внутри tableViewCell, внутри кнопки есть вид с тенью на нем.Вверху затененного вида есть кнопка, которая меняет тень, чтобы она выглядела так, как будто вид был нажат.

Моя проблема в том, что существует задержка между нажатием кнопки и обновлением тени.

Я знаю, что код запускается немедленно, поэтому это не проблемасвойство delaysContentTouches.Я также вижу, что код запускается до и после линий обновления тени, и они запускаются сразу после нажатия кнопки.

Я попытался изменить тень, чтобы она была на кнопке ине используя представление, но это вызывает массу проблем с остальной частью иерархии представления.Я перемонтировал функции кнопок.И я попытался реализовать все это программно.

У меня также есть еще одна кнопка, которая прекрасно работает.Разница лишь в том, что эти кнопки находятся в tableViewCell.

Вот функции для изменения теней.

@IBAction func touchDown(_ sender: UIButton) {
    containerView.layer.shadowRadius = 1
    containerView.layer.shadowOffset = CGSize(width: 0, height: 0.5)
    containerView.layer.shadowPath = UIBezierPath(roundedRect: containerView.bounds, cornerRadius: 10).cgPath
}

@IBAction func touchUp(_ sender: UIButton) {
    delegate?.pressedAt(indexPath!)
    containerView.layer.shadowRadius = 2
    containerView.layer.shadowOffset = CGSize(width: 0, height: 1)
    containerView.layer.shadowPath = UIBezierPath(roundedRect: containerView.bounds, cornerRadius: 10).cgPath
}

Мне нужно немедленно изменить тень при нажатии кнопки.Это показывает, что вид нажимается как кнопка.

...