Я создал функцию @IBAction
, соединяющую мою кнопку в контроллере представления с основной раскадровкой. Цель состоит в том, чтобы заставить мою кнопку сделать анимацию встряхивания, но я не знаю, как ее подключить. Я получаю сообщение об ошибке Декларация действительна только в области действия файла в строке extension UIButton {
. Нужно ли избавляться от расширения? Переместить другие линии вокруг? Как мне получить кнопку для анимации? Ниже приведен код, который показан для запуска mapkit. Мне нужно создать еще один класс?
Я попытался полностью удалить расширение, переименовав имя перед UIButton и изменив UIButton () на другие имена, попытался просмотреть учебные пособия, но ничего не подходит именно тому, что у меня есть.
//button
@IBAction func diceButton(_ sender: UIButton) {
//shake button
//shake
extension UIButton {
func buttonshake() {
let shake = CABasicAnimation(keyPath: "position")
shake.duration = 0.1
shake.repeatCount = 2
shake.autoreverses = true
let fromPoint = CGPoint(x: center.x - 5, y: center.y)
let fromValue = NSValue(cgPoint: fromPoint)
let toPoint = CGPoint(x: center.x + 5, y: center.y)
let toValue = NSValue(cgPoint: toPoint)
shake.fromValue = fromValue
shake.toValue = toValue
layer.add(shake, forKey: nil)
}
}
}
Ошибка возникает в строке под // shake и больше нигде. Это все в действии кнопки, и у меня в коде нет другой кнопки, поэтому я не вижу ничего, что могло бы повторяться.