From 59de97d267ca74117f729c89e92c293284f7bc14 Mon Sep 17 00:00:00 2001 From: Mikhail Konovalov Date: Thu, 11 Jan 2018 12:40:04 +0300 Subject: [PATCH] =?UTF-8?q?=D0=A4=D0=B8=D0=BA=D1=81=20=D1=83=D1=82=D0=B5?= =?UTF-8?q?=D1=87=D0=BA=D0=B8=20=D0=BF=D0=B0=D0=BC=D1=8F=D1=82=D0=B8?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- Classes/RMRPullToRefresh.swift | 8 -------- Classes/RMRPullToRefreshController.swift | 22 ++++++++++++++-------- 2 files changed, 14 insertions(+), 16 deletions(-) mode change 100755 => 100644 Classes/RMRPullToRefresh.swift mode change 100755 => 100644 Classes/RMRPullToRefreshController.swift diff --git a/Classes/RMRPullToRefresh.swift b/Classes/RMRPullToRefresh.swift old mode 100755 new mode 100644 index 3175e0d..33a850c --- a/Classes/RMRPullToRefresh.swift +++ b/Classes/RMRPullToRefresh.swift @@ -46,14 +46,6 @@ open class RMRPullToRefresh: NSObject { self.сontroller = controller } - /// Метод нужно вызывать в deinit экрана, в котором используется pull-to-refresh. - /// - /// Это временное решение для избежания краша из-за KVO-наблюдателей на scroll view - /// (при уничтожении скролла и экрана, в котором он лежит). - open func unsubscribeFromBindings() { - сontroller?.unsubscribeFromScrollViewEvents() - } - open func configureView(_ view :RMRPullToRefreshView, state:RMRPullToRefreshState, result:RMRPullToRefreshResultType) { сontroller?.configureView(view, state: state, result: result) } diff --git a/Classes/RMRPullToRefreshController.swift b/Classes/RMRPullToRefreshController.swift old mode 100755 new mode 100644 index 952bfde..2619126 --- a/Classes/RMRPullToRefreshController.swift +++ b/Classes/RMRPullToRefreshController.swift @@ -382,18 +382,24 @@ open class RMRPullToRefreshController: NSObject { return } - self.contentOffsetObservation = scrollView.observe(\.contentOffset, options: [.new]) { scrollView, change in - guard let newContentOffset = change.newValue else { return } - self.scrollViewDidScroll(scrollView, contentOffset: newContentOffset) + self.contentOffsetObservation = scrollView.observe( + \.contentOffset, + options: [.new]) { [weak self] (scrollView, change) in + guard let newContentOffset = change.newValue else { return } + self?.scrollViewDidScroll(scrollView, contentOffset: newContentOffset) } - self.contentSizeObservation = scrollView.observe(\.contentSize, options: [.new]) { scrollView, change in - guard let newContentSize = change.newValue else { return } - self.scrollViewDidChangeContentSize(scrollView, contentSize: newContentSize) + self.contentSizeObservation = scrollView.observe( + \.contentSize, + options: [.new]) { [weak self] (scrollView, change) in + guard let newContentSize = change.newValue else { return } + self?.scrollViewDidChangeContentSize(scrollView, contentSize: newContentSize) } - self.panStateObservation = scrollView.panGestureRecognizer.observe(\.state, options: [.new]) { panGestureRecognizer, _ in - self.scrollViewDidChangePanState(scrollView, panState: panGestureRecognizer.state) + self.panStateObservation = scrollView.panGestureRecognizer.observe( + \.state, + options: [.new]) { [weak self] panGestureRecognizer, _ in + self?.scrollViewDidChangePanState(scrollView, panState: panGestureRecognizer.state) } }