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, @"");