You are viewing a plain text version of this content. The canonical link for it is here.
Posted to commits@weex.apache.org by bo...@apache.org on 2017/04/10 03:51:56 UTC

[8/9] incubator-weex git commit: * [ios] Relieve the dependency of WXIndicatorComponent on the parent component .

* [ios] Relieve the dependency of WXIndicatorComponent on the parent component .


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

Branch: refs/heads/0.12-dev
Commit: 1f7a7dbf57069bd82e1d7577e2a0d11be8264754
Parents: 10665be
Author: LiuHongfeng(GuJian) <La...@gmail.com>
Authored: Mon Apr 10 11:17:43 2017 +0800
Committer: LiuHongfeng(GuJian) <La...@gmail.com>
Committed: Mon Apr 10 11:17:43 2017 +0800

----------------------------------------------------------------------
 .../Sources/Component/WXCycleSliderComponent.m  |  5 +++--
 .../Sources/Component/WXIndicatorComponent.h    |  8 ++++++++
 .../Sources/Component/WXIndicatorComponent.m    | 21 +++++++-------------
 .../Sources/Component/WXSliderComponent.m       |  5 +++--
 .../Component/WXSliderNeighborComponent.m       |  5 ++++-
 5 files changed, 25 insertions(+), 19 deletions(-)
----------------------------------------------------------------------


http://git-wip-us.apache.org/repos/asf/incubator-weex/blob/1f7a7dbf/ios/sdk/WeexSDK/Sources/Component/WXCycleSliderComponent.m
----------------------------------------------------------------------
diff --git a/ios/sdk/WeexSDK/Sources/Component/WXCycleSliderComponent.m b/ios/sdk/WeexSDK/Sources/Component/WXCycleSliderComponent.m
index a8fc879..1db172a 100644
--- a/ios/sdk/WeexSDK/Sources/Component/WXCycleSliderComponent.m
+++ b/ios/sdk/WeexSDK/Sources/Component/WXCycleSliderComponent.m
@@ -303,7 +303,7 @@ typedef NS_ENUM(NSInteger, Direction) {
 
 @end
 
-@interface WXCycleSliderComponent ()<WXRecycleSliderViewDelegate>
+@interface WXCycleSliderComponent () <WXRecycleSliderViewDelegate,WXIndicatorComponentDelegate>
 
 @property (nonatomic, strong) WXRecycleSliderView *recycleSliderView;
 @property (nonatomic, strong) NSTimer *autoTimer;
@@ -417,6 +417,7 @@ typedef NS_ENUM(NSInteger, Direction) {
         
         WXRecycleSliderView *recycleSliderView = (WXRecycleSliderView *)self.view;
         if ([view isKindOfClass:[WXIndicatorView class]]) {
+            ((WXIndicatorComponent *)subcomponent).delegate = self;
             [recycleSliderView addSubview:view];
             return;
         }
@@ -512,7 +513,7 @@ typedef NS_ENUM(NSInteger, Direction) {
     }
 }
 
-#pragma mark Public Methods
+#pragma mark WXIndicatorComponentDelegate Methods
 
 -(void)setIndicatorView:(WXIndicatorView *)indicatorView
 {

http://git-wip-us.apache.org/repos/asf/incubator-weex/blob/1f7a7dbf/ios/sdk/WeexSDK/Sources/Component/WXIndicatorComponent.h
----------------------------------------------------------------------
diff --git a/ios/sdk/WeexSDK/Sources/Component/WXIndicatorComponent.h b/ios/sdk/WeexSDK/Sources/Component/WXIndicatorComponent.h
index faeae40..88347fd 100644
--- a/ios/sdk/WeexSDK/Sources/Component/WXIndicatorComponent.h
+++ b/ios/sdk/WeexSDK/Sources/Component/WXIndicatorComponent.h
@@ -28,6 +28,14 @@ typedef enum
 @end
 
 
+@protocol WXIndicatorComponentDelegate <NSObject>
+
+-(void)setIndicatorView:(WXIndicatorView *)indicatorView;
+
+@end
+
 @interface WXIndicatorComponent : WXComponent
 
+@property (nonatomic, weak) id<WXIndicatorComponentDelegate> delegate;
+
 @end

http://git-wip-us.apache.org/repos/asf/incubator-weex/blob/1f7a7dbf/ios/sdk/WeexSDK/Sources/Component/WXIndicatorComponent.m
----------------------------------------------------------------------
diff --git a/ios/sdk/WeexSDK/Sources/Component/WXIndicatorComponent.m b/ios/sdk/WeexSDK/Sources/Component/WXIndicatorComponent.m
index 2647d61..39c081a 100644
--- a/ios/sdk/WeexSDK/Sources/Component/WXIndicatorComponent.m
+++ b/ios/sdk/WeexSDK/Sources/Component/WXIndicatorComponent.m
@@ -7,10 +7,7 @@
  */
 
 #import "WXIndicatorComponent.h"
-#import "WXSliderComponent.h"
-#import "WXCycleSliderComponent.h"
 #import "WXConvert.h"
-#import "WXSliderNeighborComponent.h"
 #import "WXSDKInstance.h"
 
 @implementation WXIndicatorView
@@ -159,17 +156,13 @@
     _indicatorView.lightColor = _itemSelectedColor;
     _indicatorView.pointSize = _itemSize;
     
-    WXComponent *parent = self.supercomponent;
-    if([parent isKindOfClass:[WXSliderComponent class]]) {
-        WXSliderComponent *parentSlider = (WXSliderComponent *)parent;
-        [parentSlider setIndicatorView:_indicatorView];
-    }
-    if([parent isKindOfClass:[WXCycleSliderComponent class]]) {
-        WXCycleSliderComponent *parentSlider = (WXCycleSliderComponent *)parent;
-        [parentSlider setIndicatorView:_indicatorView];
-    }else if ([parent isKindOfClass:[WXSliderNeighborComponent class]]) {
-        WXSliderNeighborComponent *parentSlider = (WXSliderNeighborComponent *)parent;
-        [parentSlider setIndicatorView:_indicatorView];
+    
+}
+
+- (void)layoutDidFinish
+{
+    if (self.delegate && [self.delegate respondsToSelector:@selector(setIndicatorView:)]) {
+        [self.delegate setIndicatorView:_indicatorView];
     }
 }
 

http://git-wip-us.apache.org/repos/asf/incubator-weex/blob/1f7a7dbf/ios/sdk/WeexSDK/Sources/Component/WXSliderComponent.m
----------------------------------------------------------------------
diff --git a/ios/sdk/WeexSDK/Sources/Component/WXSliderComponent.m b/ios/sdk/WeexSDK/Sources/Component/WXSliderComponent.m
index c85ba63..d3b5504 100644
--- a/ios/sdk/WeexSDK/Sources/Component/WXSliderComponent.m
+++ b/ios/sdk/WeexSDK/Sources/Component/WXSliderComponent.m
@@ -327,7 +327,7 @@
 
 @end
 
-@interface WXSliderComponent ()<WXSliderViewDelegate>
+@interface WXSliderComponent () <WXSliderViewDelegate,WXIndicatorComponentDelegate>
 
 @property (nonatomic, strong) WXSliderView *sliderView;
 @property (nonatomic, strong) NSTimer *autoTimer;
@@ -442,6 +442,7 @@
         
         WXSliderView *sliderView = (WXSliderView *)self.view;
         if ([view isKindOfClass:[WXIndicatorView class]]) {
+            ((WXIndicatorComponent *)subcomponent).delegate = self;
             [sliderView addSubview:view];
             return;
         }
@@ -550,7 +551,7 @@
     }
 }
 
-#pragma mark Public Methods
+#pragma mark WXIndicatorComponentDelegate Methods
 
 -(void)setIndicatorView:(WXIndicatorView *)indicatorView
 {

http://git-wip-us.apache.org/repos/asf/incubator-weex/blob/1f7a7dbf/ios/sdk/WeexSDK/Sources/Component/WXSliderNeighborComponent.m
----------------------------------------------------------------------
diff --git a/ios/sdk/WeexSDK/Sources/Component/WXSliderNeighborComponent.m b/ios/sdk/WeexSDK/Sources/Component/WXSliderNeighborComponent.m
index 830205e..9e2a50e 100644
--- a/ios/sdk/WeexSDK/Sources/Component/WXSliderNeighborComponent.m
+++ b/ios/sdk/WeexSDK/Sources/Component/WXSliderNeighborComponent.m
@@ -1377,7 +1377,7 @@ NSComparisonResult sliderNeighorCompareViewDepth(UIView *view1, UIView *view2, W
 
 @end
 
-@interface WXSliderNeighborComponent() {
+@interface WXSliderNeighborComponent () <WXIndicatorComponentDelegate>{
     WXPixelType neighborSpace;
     CGFloat neighborAlpha;
     CGFloat neighborScale;
@@ -1487,6 +1487,7 @@ NSComparisonResult sliderNeighorCompareViewDepth(UIView *view1, UIView *view2, W
         
         WXSliderNeighborView *sliderView = (WXSliderNeighborView *)self.view;
         if ([view isKindOfClass:[WXIndicatorView class]]) {
+            ((WXIndicatorComponent *)subcomponent).delegate = self;
             [sliderView addSubview:view];
             return;
         }
@@ -1586,6 +1587,8 @@ NSComparisonResult sliderNeighorCompareViewDepth(UIView *view1, UIView *view2, W
     }
 }
 
+#pragma mark WXIndicatorComponentDelegate Methods
+
 - (void)setIndicatorView:(WXIndicatorView *)indicatorView
 {
     NSAssert(_sliderView, @"");