* [ios] fix some parameters with fireEvent of scrollstart and scrollend

Project: http://git-wip-us.apache.org/repos/asf/incubator-weex/repo
Commit: http://git-wip-us.apache.org/repos/asf/incubator-weex/commit/180b9748
Tree: http://git-wip-us.apache.org/repos/asf/incubator-weex/tree/180b9748
Diff: http://git-wip-us.apache.org/repos/asf/incubator-weex/diff/180b9748

Branch: refs/heads/master
Commit: 180b9748d39b698d44e9a0bd64897f3ef42c18b9
Parents: 2891c7e
Author: doumafang <doumaf...@gmail.com>
Authored: Mon Nov 13 17:09:16 2017 +0800
Committer: doumafang <doumaf...@gmail.com>
Committed: Mon Nov 13 17:09:16 2017 +0800

----------------------------------------------------------------------
 .../Sources/Component/WXScrollerComponent.m     | 31 ++++++++++++++++++--
 1 file changed, 28 insertions(+), 3 deletions(-)
----------------------------------------------------------------------


http://git-wip-us.apache.org/repos/asf/incubator-weex/blob/180b9748/ios/sdk/WeexSDK/Sources/Component/WXScrollerComponent.m
----------------------------------------------------------------------
diff --git a/ios/sdk/WeexSDK/Sources/Component/WXScrollerComponent.m 
b/ios/sdk/WeexSDK/Sources/Component/WXScrollerComponent.m
index 16f5e8e..2eb74c9 100644
--- a/ios/sdk/WeexSDK/Sources/Component/WXScrollerComponent.m
+++ b/ios/sdk/WeexSDK/Sources/Component/WXScrollerComponent.m
@@ -63,6 +63,8 @@
     CGSize _contentSize;
     BOOL _listenLoadMore;
     BOOL _scrollEvent;
+    BOOL _scrollStartEvent;
+    BOOL _scrollEndEvent;
     CGFloat _loadMoreOffset;
     CGFloat _previousLoadMoreContentHeight;
     CGFloat _offsetAccuracy;
@@ -116,6 +118,8 @@ WX_EXPORT_METHOD(@selector(resetLoadmore))
         _stickyArray = [NSMutableArray array];
         _listenerArray = [NSMutableArray array];
         _scrollEvent = NO;
+        _scrollStartEvent = NO;
+        _scrollEndEvent = NO;
         _lastScrollEventFiredOffset = CGPointMake(0, 0);
         _scrollDirection = attributes[@"scrollDirection"] ? [WXConvert 
WXScrollDirection:attributes[@"scrollDirection"]] : WXScrollDirectionVertical;
         _showScrollBar = attributes[@"showScrollbar"] ? [WXConvert 
BOOL:attributes[@"showScrollbar"]] : YES;
@@ -260,6 +264,12 @@ WX_EXPORT_METHOD(@selector(resetLoadmore))
     if ([eventName isEqualToString:@"scroll"]) {
         _scrollEvent = YES;
     }
+    if ([eventName isEqualToString:@"scrollStart"]) {
+        _scrollStartEvent = YES;
+    }
+    if ([eventName isEqualToString:@"scrollEnd"]) {
+        _scrollEndEvent = YES;
+    }
 }
 
 - (void)removeEvent:(NSString *)eventName
@@ -270,6 +280,12 @@ WX_EXPORT_METHOD(@selector(resetLoadmore))
     if ([eventName isEqualToString:@"scroll"]) {
         _scrollEvent = NO;
     }
+    if ([eventName isEqualToString:@"scrollStart"]) {
+        _scrollStartEvent = NO;
+    }
+    if ([eventName isEqualToString:@"scrollEnd"]) {
+        _scrollEndEvent = NO;
+    }
 }
 
 #pragma mark WXScrollerProtocol
@@ -490,7 +506,12 @@ WX_EXPORT_METHOD(@selector(resetLoadmore))
 #pragma mark UIScrollViewDelegate
 - (void)scrollViewWillBeginDragging:(UIScrollView *)scrollView
 {
-    [self fireEvent:@"scrollstart" params:nil domChanges:nil];
+    if (_scrollStartEvent) {
+        CGFloat scaleFactor = self.weexInstance.pixelScaleFactor;
+        NSDictionary *contentSizeData = @{@"width":[NSNumber 
numberWithFloat:scrollView.contentSize.width / scaleFactor],@"height":[NSNumber 
numberWithFloat:scrollView.contentSize.height / scaleFactor]};
+        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];
+    }
 }
 
 - (void)scrollViewDidScroll:(UIScrollView *)scrollView
@@ -573,8 +594,12 @@ WX_EXPORT_METHOD(@selector(resetLoadmore))
     }
     
     [scrollView setContentInset:inset];
-    [self fireEvent:@"scrollend" params:nil domChanges:nil];
-
+    if (_scrollEndEvent) {
+        CGFloat scaleFactor = self.weexInstance.pixelScaleFactor;
+        NSDictionary *contentSizeData = @{@"width":[NSNumber 
numberWithFloat:scrollView.contentSize.width / scaleFactor],@"height":[NSNumber 
numberWithFloat:scrollView.contentSize.height / scaleFactor]};
+        NSDictionary *contentOffsetData = @{@"x":[NSNumber 
numberWithFloat:-scrollView.contentOffset.x / scaleFactor],@"y":[NSNumber 
numberWithFloat:-scrollView.contentOffset.y / scaleFactor]};
+        [self fireEvent:@"scrollend" 
params:@{@"contentSize":contentSizeData,@"contentOffset":contentOffsetData} 
domChanges:nil];
+    }
 }
 
 - (void)scrollViewDidEndDragging:(UIScrollView *)scrollView 
willDecelerate:(BOOL)decelerate

Reply via email to