You are viewing a plain text version of this content. The canonical link for it is here.
Posted to commits@weex.apache.org by ac...@apache.org on 2018/02/26 09:51:27 UTC

incubator-weex git commit: [WEEX-220][iOS] recycle-list horizontal layout support loadmore event close #1033

Repository: incubator-weex
Updated Branches:
  refs/heads/master 0e74f4f94 -> 22cbd5b11


[WEEX-220][iOS] recycle-list horizontal layout support loadmore event
close #1033


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

Branch: refs/heads/master
Commit: 22cbd5b1114f6960b094da085ea2cd211ca97b47
Parents: 0e74f4f
Author: zerdzhong <zh...@gmail.com>
Authored: Tue Feb 13 17:13:08 2018 +0800
Committer: acton393 <zh...@gmail.com>
Committed: Mon Feb 26 17:50:46 2018 +0800

----------------------------------------------------------------------
 .../RecycleList/WXRecycleListComponent.m        | 12 +++------
 .../Sources/Component/WXScrollerComponent.m     | 28 +++++++++++++++++---
 2 files changed, 28 insertions(+), 12 deletions(-)
----------------------------------------------------------------------


http://git-wip-us.apache.org/repos/asf/incubator-weex/blob/22cbd5b1/ios/sdk/WeexSDK/Sources/Component/RecycleList/WXRecycleListComponent.m
----------------------------------------------------------------------
diff --git a/ios/sdk/WeexSDK/Sources/Component/RecycleList/WXRecycleListComponent.m b/ios/sdk/WeexSDK/Sources/Component/RecycleList/WXRecycleListComponent.m
index b3eb315..a98119f 100644
--- a/ios/sdk/WeexSDK/Sources/Component/RecycleList/WXRecycleListComponent.m
+++ b/ios/sdk/WeexSDK/Sources/Component/RecycleList/WXRecycleListComponent.m
@@ -48,7 +48,6 @@
     NSMutableDictionary *_stickyCache;
     
     NSUInteger _previousLoadMoreCellNumber;
-    WXScrollDirection _scrollDirection;
 }
 
 WX_EXPORT_METHOD(@selector(appendData:))
@@ -78,7 +77,6 @@ WX_EXPORT_METHOD(@selector(setListData:))
         _indexKey = [WXConvert NSString:attributes[@"index"]];
         _sizeCache = [NSMutableDictionary dictionary];
         _stickyCache = [NSMutableDictionary dictionary];
-        _scrollDirection = attributes[@"scrollDirection"] ? [WXConvert WXScrollDirection:attributes[@"scrollDirection"]] : WXScrollDirectionVertical;
     }
     
     return self;
@@ -116,6 +114,8 @@ WX_EXPORT_METHOD(@selector(setListData:))
 
 - (void)updateAttributes:(NSDictionary *)attributes
 {
+    [super updateAttributes:attributes];
+    
     if (attributes[@"listData"]) {
         NSArray *listData = attributes[@"listData"];
         [self _updateListData:listData withCompletion:nil animation:NO];
@@ -447,11 +447,7 @@ WX_EXPORT_METHOD(@selector(setListData:))
 }
 
 - (void)_updateScrollDirection:(WXScrollDirection)newScrollDirection
-{
-    if (_scrollDirection == newScrollDirection) {
-        return;
-    }
-    _scrollDirection = newScrollDirection;
+{   
     WXRecycleListLayout *layout = [self recycleListLayout];
     _collectionView.collectionViewLayout = layout;
 }
@@ -463,7 +459,7 @@ WX_EXPORT_METHOD(@selector(setListData:))
     // to show cells that original width / height is zero, otherwise cellForItemAtIndexPath will not be called
     layout.minimumLineSpacing = 0.01;
     layout.minimumInteritemSpacing = 0.01;
-    if (_scrollDirection == WXScrollDirectionHorizontal) {
+    if (WXScrollDirectionHorizontal == self.scrollDirection) {
         layout.scrollDirection = UICollectionViewScrollDirectionHorizontal;
     }
     return layout;

http://git-wip-us.apache.org/repos/asf/incubator-weex/blob/22cbd5b1/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 6f9ae30..5508fba 100644
--- a/ios/sdk/WeexSDK/Sources/Component/WXScrollerComponent.m
+++ b/ios/sdk/WeexSDK/Sources/Component/WXScrollerComponent.m
@@ -269,6 +269,10 @@ WX_EXPORT_METHOD(@selector(resetLoadmore))
     if (attributes[@"offsetAccuracy"]) {
         _offsetAccuracy = [WXConvert WXPixelType:attributes[@"offsetAccuracy"] scaleFactor:self.weexInstance.pixelScaleFactor];
     }
+    
+    if (attributes[@"scrollDirection"]) {
+        _scrollDirection = attributes[@"scrollDirection"] ? [WXConvert WXScrollDirection:attributes[@"scrollDirection"]] : WXScrollDirectionVertical;
+    }
 }
 
 - (void)addEvent:(NSString *)eventName
@@ -443,8 +447,14 @@ WX_EXPORT_METHOD(@selector(resetLoadmore))
 
 - (BOOL)isNeedLoadMore
 {
-    if (_loadMoreOffset >= 0.0 && ((UIScrollView *)self.view).contentOffset.y >= 0) {
-        return _previousLoadMoreContentHeight != ((UIScrollView *)self.view).contentSize.height && ((UIScrollView *)self.view).contentSize.height - ((UIScrollView *)self.view).contentOffset.y -  self.view.frame.size.height <= _loadMoreOffset;
+    if (WXScrollDirectionVertical == _scrollDirection) {
+        if (_loadMoreOffset >= 0.0 && ((UIScrollView *)self.view).contentOffset.y >= 0) {
+            return _previousLoadMoreContentHeight != ((UIScrollView *)self.view).contentSize.height && ((UIScrollView *)self.view).contentSize.height - ((UIScrollView *)self.view).contentOffset.y -  self.view.frame.size.height <= _loadMoreOffset;
+        }
+    } else if (WXScrollDirectionHorizontal == _scrollDirection) {
+        if (_loadMoreOffset >= 0.0 && ((UIScrollView *)self.view).contentOffset.x >= 0) {
+            return _previousLoadMoreContentHeight != ((UIScrollView *)self.view).contentSize.width && ((UIScrollView *)self.view).contentSize.width - ((UIScrollView *)self.view).contentOffset.x -  self.view.frame.size.width <= _loadMoreOffset;
+        }
     }
     
     return NO;
@@ -453,7 +463,12 @@ WX_EXPORT_METHOD(@selector(resetLoadmore))
 - (void)loadMore
 {
     [self fireEvent:@"loadmore" params:nil];
-    _previousLoadMoreContentHeight = ((UIScrollView *)self.view).contentSize.height;
+    
+    if (WXScrollDirectionVertical == _scrollDirection) {
+        _previousLoadMoreContentHeight = ((UIScrollView *)self.view).contentSize.height;
+    } else if (WXScrollDirectionHorizontal == _scrollDirection) {
+        _previousLoadMoreContentHeight = ((UIScrollView *)self.view).contentSize.width;
+    }
 }
 
 - (CGPoint)contentOffset
@@ -547,11 +562,16 @@ WX_EXPORT_METHOD(@selector(resetLoadmore))
         _direction = @"right";
     } else if (_lastContentOffset.x < scrollView.contentOffset.x) {
         _direction = @"left";
+        if (WXScrollDirectionHorizontal == _scrollDirection) {
+            [self handleLoadMore];
+        }
     } else if(_lastContentOffset.y > scrollView.contentOffset.y) {
         _direction = @"down";
     } else if(_lastContentOffset.y < scrollView.contentOffset.y) {
         _direction = @"up";
-        [self handleLoadMore];
+        if (WXScrollDirectionVertical == _scrollDirection) {
+            [self handleLoadMore];
+        }
     }
     
     CGFloat scaleFactor = self.weexInstance.pixelScaleFactor;