UIInterpolationEffect keyPathsAndRelativeValues ​​продолжает выдавать значения после прекращения перемещения - PullRequest
0 голосов
/ 16 декабря 2018

Я реализую свой собственный UIInterpolationEffect, который может быть закрыт.это мой класс:

class ClosureMotionEffect: UIInterpolatingMotionEffect {

    typealias MotionClosure = (UIOffset) -> Void

    var closure: MotionClosure?

    init(closure: @escaping MotionClosure) {
        self.closure = closure
        super.init(keyPath: "", type: .tiltAlongVerticalAxis)
    }

    required init?(coder aDecoder: NSCoder) {
         fatalError("init(coder:) has not been implemented")
    }

    override func keyPathsAndRelativeValues(forViewerOffset viewerOffset: UIOffset) -> [String : Any]? {
        super.keyPathsAndRelativeValues(forViewerOffset: viewerOffset)
        print(viewerOffset)    
        closure?(viewerOffset)
        return nil
    }

}

Почему-то, когда я печатаю значения перед вызовом замыкания, если я играю с устройством, а затем просто кладу его на стол, функция keyPathsAndRelativeValues продолжает получатьзвонили примерно в 10-20 раз, с уменьшением времени между звонками.В конце концов это останавливается.

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

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...