Repository: incubator-weex Updated Branches: refs/heads/master 67d3f1dc6 -> e315e8ab3
[WEEX-328][iOS]ScrollComponent called all scrollview delegate close #1142 Project: http://git-wip-us.apache.org/repos/asf/incubator-weex/repo Commit: http://git-wip-us.apache.org/repos/asf/incubator-weex/commit/e315e8ab Tree: http://git-wip-us.apache.org/repos/asf/incubator-weex/tree/e315e8ab Diff: http://git-wip-us.apache.org/repos/asf/incubator-weex/diff/e315e8ab Branch: refs/heads/master Commit: e315e8ab3aed5c430e2e4b19f95e43d65bfb6818 Parents: 67d3f1d Author: yuchenghai <[email protected]> Authored: Wed May 2 17:22:50 2018 +0800 Committer: acton393 <[email protected]> Committed: Thu May 3 11:58:17 2018 +0800 ---------------------------------------------------------------------- .../Sources/Component/WXScrollerComponent.mm | 35 ++++++++++++++++++++ 1 file changed, 35 insertions(+) ---------------------------------------------------------------------- http://git-wip-us.apache.org/repos/asf/incubator-weex/blob/e315e8ab/ios/sdk/WeexSDK/Sources/Component/WXScrollerComponent.mm ---------------------------------------------------------------------- diff --git a/ios/sdk/WeexSDK/Sources/Component/WXScrollerComponent.mm b/ios/sdk/WeexSDK/Sources/Component/WXScrollerComponent.mm index 215d9ff..52bb962 100644 --- a/ios/sdk/WeexSDK/Sources/Component/WXScrollerComponent.mm +++ b/ios/sdk/WeexSDK/Sources/Component/WXScrollerComponent.mm @@ -620,6 +620,13 @@ WX_EXPORT_METHOD(@selector(resetLoadmore)) NSDictionary *contentOffsetData = @{@"x":[NSNumber numberWithFloat:-scrollView.contentOffset.x / scaleFactor],@"y":[NSNumber numberWithFloat:-scrollView.contentOffset.y / scaleFactor]}; [self fireEvent:@"scrollstart" params:@{@"contentSize":contentSizeData,@"contentOffset":contentOffsetData} domChanges:nil]; } + + NSHashTable *delegates = [_delegates copy]; + for (id<UIScrollViewDelegate> delegate in delegates) { + if ([delegate respondsToSelector:@selector(scrollViewWillBeginDragging:)]) { + [delegate scrollViewWillBeginDragging:scrollView]; + } + } } - (void)scrollViewDidScroll:(UIScrollView *)scrollView @@ -705,6 +712,13 @@ WX_EXPORT_METHOD(@selector(resetLoadmore)) inset.bottom = 0; } [scrollView setContentInset:inset]; + + NSHashTable *delegates = [_delegates copy]; + for (id<UIScrollViewDelegate> delegate in delegates) { + if ([delegate respondsToSelector:@selector(scrollViewDidEndScrollingAnimation:)]) { + [delegate scrollViewDidEndScrollingAnimation:scrollView]; + } + } } - (void)scrollViewDidEndDecelerating:(UIScrollView *)scrollView @@ -717,6 +731,13 @@ WX_EXPORT_METHOD(@selector(resetLoadmore)) [self fireEvent:@"scrollend" params:@{@"contentSize":contentSizeData,@"contentOffset":contentOffsetData} domChanges:nil]; } } + + NSHashTable *delegates = [_delegates copy]; + for (id<UIScrollViewDelegate> delegate in delegates) { + if ([delegate respondsToSelector:@selector(scrollViewDidEndDecelerating:)]) { + [delegate scrollViewDidEndDecelerating:scrollView]; + } + } } - (void)scrollViewWillEndDragging:(UIScrollView *)scrollView withVelocity:(CGPoint)velocity targetContentOffset:(inout CGPoint *)targetContentOffset @@ -734,6 +755,13 @@ WX_EXPORT_METHOD(@selector(resetLoadmore)) // drop up } } + + NSHashTable *delegates = [_delegates copy]; + for (id<UIScrollViewDelegate> delegate in delegates) { + if ([delegate respondsToSelector:@selector(scrollViewWillEndDragging:withVelocity:targetContentOffset:)]) { + [delegate scrollViewWillEndDragging:scrollView withVelocity:velocity targetContentOffset:targetContentOffset]; + } + } } - (void)scrollViewDidEndDragging:(UIScrollView *)scrollView willDecelerate:(BOOL)decelerate @@ -757,6 +785,13 @@ WX_EXPORT_METHOD(@selector(resetLoadmore)) _isScrolling = NO; [self performSelector:@selector(scrollViewDidEndDecelerating:) withObject:nil afterDelay:0.1]; } + + NSHashTable *delegates = [_delegates copy]; + for (id<UIScrollViewDelegate> delegate in delegates) { + if ([delegate respondsToSelector:@selector(scrollViewDidEndDragging:willDecelerate:)]) { + [delegate scrollViewDidEndDragging:scrollView willDecelerate:decelerate]; + } + } } - (void)loadMoreIfNeed
