You are viewing a plain text version of this content. The canonical link for it is here.
Posted to dev@weex.apache.org by bluebird78999 <gi...@git.apache.org> on 2017/04/05 03:05:56 UTC

[GitHub] incubator-weex pull request #210: * [ios] the new slider component which is ...

GitHub user bluebird78999 opened a pull request:

    https://github.com/apache/incubator-weex/pull/210

    * [ios] the new slider component which is named WXRecycleSliderCompon

     [ios] the new slider component which is named WXRecycleSliderComponent to replace the old slider component which is name WXSliderComponent.
    <!--
    
    Notes: Weex will move into Apache Software Foundation (ASF) on Feb 24 2017.
    
    Our new GitHub repo is https://github.com/apache/incubator-weex
    
    After Feb 24 2017, we only accept pull requests from https://github.com/apache/incubator-weex
    
    Thank you for your support.
    
    ----
    
    \u6ce8\u610f\uff1aWeex \u5c06\u4e8e 2017-02-24 \u8fc1\u79fb\u81f3 Apache \u57fa\u91d1\u4f1a
    
    \u5c4a\u65f6\u6211\u4eec\u4f1a\u4f7f\u7528\u65b0\u7684 GitHub \u4ed3\u5e93\uff1ahttps://github.com/apache/incubator-weex \u5e76\u5728\u90a3\u91cc\u7ee7\u7eed\u63a5\u53d7\u5927\u5bb6\u7684 pull request\u3002
    
    \u66f4\u591a\u8be6\u60c5\u8bf7\u5173\u6ce8\uff1ahttps://github.com/weexteam/article/issues/130
    
    \u611f\u8c22\u7406\u89e3\u548c\u652f\u6301
    
    -->
    
    <!--
    
    It's ***RECOMMENDED*** to submit typo fix, new demo and tiny bugfix to `dev` branch. New feature and other modifications can be submitted to "domain" branch including `ios`, `android`, `jsfm`, `html5`.
        
    See [Branch Strategy](https://github.com/alibaba/weex/blob/dev/CONTRIBUTING.md#branch-management) for more detail.
    
    ----
    
    \uff08\u8bf7\u5728***\u63d0\u4ea4***\u524d\u5220\u9664\u8fd9\u6bb5\u63cf\u8ff0\uff09
    
    \u9519\u522b\u5b57\u4fee\u6539\u3001\u65b0 demo\u3001\u8f83\u5c0f\u7684 bugfix \u90fd\u53ef\u4ee5\u76f4\u63a5\u63d0\u5230 `dev` \u5206\u652f\uff1b\u65b0\u9700\u6c42\u4ee5\u53ca\u4efb\u4f55\u4f60\u4e0d\u786e\u5b9a\u5f71\u54cd\u9762\u7684\u6539\u52a8\uff0c\u8bf7\u63d0\u4ea4\u5230\u5bf9\u5e94\u201c\u9886\u57df\u201d\u7684\u5206\u652f\uff08`ios`\u3001`android`\u3001`jsfm`\u3001`html5`\uff09\u3002
    
    \u67e5\u770b\u5b8c\u6574\u7684[\u5206\u652f\u7b56\u7565 (\u82f1\u6587)](https://github.com/alibaba/weex/blob/dev/CONTRIBUTING.md#branch-management)\u3002
    
    -->


You can merge this pull request into a Git repository by running:

    $ git pull https://github.com/bluebird78999/incubator-weex 0.12-dev-newSlider

Alternatively you can review and apply these changes as the patch at:

    https://github.com/apache/incubator-weex/pull/210.patch

To close this pull request, make a commit to your master/trunk branch
with (at least) the following in the commit message:

    This closes #210
    
----
commit b7bcdb1ccd807ee1e17e54de124dedf77746f022
Author: LiuHongfeng(GuJian) <la...@gmail.com>
Date:   2017-04-05T03:00:00Z

    * [ios] the new slider component which is named WXRecycleSliderComponent to replace the old slider component which is name WXSliderComponent.

----


---
If your project is set up for it, you can reply to this email and have your
reply appear on GitHub as well. If your project does not have this feature
enabled and wishes so, or if the feature is enabled but not working, please
contact infrastructure at infrastructure@apache.org or file a JIRA ticket
with INFRA.
---

[GitHub] incubator-weex pull request #210: * [ios] the new slider component which is ...

Posted by kfeagle <gi...@git.apache.org>.
Github user kfeagle commented on a diff in the pull request:

    https://github.com/apache/incubator-weex/pull/210#discussion_r109823455
  
    --- Diff: ios/sdk/WeexSDK/Sources/Component/WXRecycleSliderComponent.m ---
    @@ -0,0 +1,528 @@
    +/**
    + * Created by Weex.
    + * Copyright (c) 2016, Alibaba, Inc. All rights reserved.
    + *
    + * This source code is licensed under the Apache Licence 2.0.
    + * For the full copyright and license information,please view the LICENSE file in the root directory of this source tree.
    + */
    +
    +#import "WXRecycleSliderComponent.h"
    +#import "WXIndicatorComponent.h"
    +#import "WXComponent_internal.h"
    +#import "NSTimer+Weex.h"
    +#import "WXSDKManager.h"
    +#import "WXUtility.h"
    +
    +typedef NS_ENUM(NSInteger, Direction) {
    +    DirectionNone = 1 << 0,
    +    DirectionLeft = 1 << 1,
    +    DirectionRight = 1 << 2
    +};
    +
    +@class WXRecycleSliderView;
    +@class WXIndicatorView;
    +
    +@protocol WXRecycleSliderViewDelegate <UIScrollViewDelegate>
    +
    +- (void)recycleSliderView:(WXRecycleSliderView *)recycleSliderView didScroll:(UIScrollView *)scrollView;
    +- (void)recycleSliderView:(WXRecycleSliderView *)recycleSliderView didScrollToItemAtIndex:(NSInteger)index;
    +- (void)scrollViewWillBeginDragging:(UIScrollView *)scrollView;
    +- (void)scrollViewDidEndDragging:(UIScrollView *)scrollView willDecelerate:(BOOL)decelerate;
    +
    +@end
    +
    +@interface WXRecycleSliderView : UIView <UIScrollViewDelegate>
    +
    +@property (nonatomic, strong) WXIndicatorView *indicator;
    +@property (nonatomic, weak) id<WXRecycleSliderViewDelegate> delegate;
    +
    +@property (nonatomic, strong) UIScrollView *scrollView;
    +@property (nonatomic, strong) NSMutableArray *itemViews;
    +@property (nonatomic, assign) Direction direction;
    +@property (nonatomic, assign) NSInteger currentIndex;
    +@property (nonatomic, assign) NSInteger nextIndex;
    +@property (nonatomic, assign) CGRect currentItemFrame;
    +@property (nonatomic, assign) CGRect nextItemFrame;
    +
    +- (void)insertItemView:(UIView *)view atIndex:(NSInteger)index;
    +- (void)removeItemView:(UIView *)view;
    +
    +@end
    +
    +@implementation WXRecycleSliderView
    +
    +- (id)initWithFrame:(CGRect)frame
    +{
    +    self = [super initWithFrame:frame];
    +    if (self) {
    +        _currentIndex = 0;
    +        _itemViews = [[NSMutableArray alloc] init];
    +        _scrollView = [[UIScrollView alloc] init];
    +        _scrollView.backgroundColor = [UIColor clearColor];
    +        _scrollView.delegate = self;
    +        _scrollView.showsHorizontalScrollIndicator = NO;
    +        _scrollView.showsVerticalScrollIndicator = NO;
    +        _scrollView.scrollsToTop = NO;
    +        [self addSubview:_scrollView];
    +    }
    +    return self;
    +}
    +
    +- (void)layoutSubviews
    +{
    +    [super layoutSubviews];
    +    self.scrollView.frame = CGRectMake(0, 0, self.frame.size.width, self.frame.size.height);
    +    if (self.itemViews.count > 1) {
    +        self.scrollView.contentSize = CGSizeMake(self.width * 3, 0);
    +    } else {
    +        self.scrollView.contentSize = CGSizeZero;
    +    }
    +    self.scrollView.contentOffset = CGPointMake(self.width, 0);
    +    _currentItemFrame = CGRectMake(self.width, 0, self.width, self.height);
    +    _nextItemFrame = CGRectMake(self.width * 2, 0, self.width, self.height);
    +    [self resetItemViewsFrame];
    +}
    +
    +#pragma mark --private methods--
    +- (CGFloat)height {
    +    return self.scrollView.frame.size.height;
    +}
    +
    +- (CGFloat)width {
    +    return self.scrollView.frame.size.width;
    +}
    +
    +- (UIView *)getItemAtIndex:(NSInteger)index
    +{
    +    if (self.itemViews.count > index) {
    +        return [self.itemViews objectAtIndex:index];
    +    }else{
    +        return nil;
    +    }
    +}
    +
    +- (void)setCurrentIndex:(NSInteger)currentIndex
    +{
    +    _currentIndex = currentIndex;
    +    if (_direction == DirectionRight) { // \u5982\u679c\u662f\u5411\u53f3\u6eda\u52a8
    +        self.nextItemFrame = CGRectMake(0, 0, self.width, self.height);
    +        self.nextIndex = self.currentIndex - 1;
    +        if (self.nextIndex < 0)
    +        {
    +            self.nextIndex = _itemViews.count - 1;
    +        }
    +    }else if (_direction == DirectionLeft){ // \u5982\u679c\u662f\u5411\u5de6\u8fb9\u6eda\u52a8
    +        self.nextItemFrame = CGRectMake(self.width * 2, 0, self.width, self.height);
    +        self.nextIndex = (self.currentIndex + 1) % _itemViews.count;
    +    }
    +    [self resetItemViewsFrame];
    +    [self.indicator setPointCount:self.itemViews.count];
    +    [self.indicator setCurrentPoint:currentIndex];
    +    if (self.delegate && [self.delegate respondsToSelector:@selector(recycleSliderView:didScrollToItemAtIndex:)]) {
    +        [self.delegate recycleSliderView:self didScrollToItemAtIndex:_currentIndex];
    +    }
    +}
    +
    +#pragma mark - \u8bbe\u7f6e\u6eda\u52a8\u65b9\u5411
    +- (void)setDirection:(Direction)direction {
    +    //\u53d8\u6362\u65b9\u5411\u65f6\u8bbe\u7f6e\u4e00\u6b21\u5404view frame
    +    if (_direction == direction) return;
    +    _direction = direction;
    +    if (_direction == DirectionNone) return;
    +    
    +    if (_direction == DirectionRight) { // \u5982\u679c\u662f\u5411\u53f3\u6eda\u52a8
    +        self.nextItemFrame = CGRectMake(0, 0, self.width, self.height);
    +        self.nextIndex = self.currentIndex - 1;
    +        if (self.nextIndex < 0)
    +        {
    +            self.nextIndex = _itemViews.count - 1;
    +        }
    +    }else if (_direction == DirectionLeft){ // \u5982\u679c\u662f\u5411\u5de6\u8fb9\u6eda\u52a8
    +        self.nextItemFrame = CGRectMake(self.width * 2, 0, self.width, self.height);
    +        self.nextIndex = (self.currentIndex + 1) % _itemViews.count;
    +    }
    +    [self getItemAtIndex:_nextIndex].frame = _nextItemFrame;
    +}
    +
    +- (void)resetItemViewsFrame
    +{
    +    for (int i = 0; i < self.itemViews.count; i++) {
    +        UIView *view = [self.itemViews objectAtIndex:i];
    +        if (i != self.currentIndex && i != self.nextIndex) {
    +            view.frame = CGRectMake(self.frame.size.width * 3, 0, self.width, self.height);;
    +        }
    +    }
    +    [self getItemAtIndex:_currentIndex].frame = _currentItemFrame;
    +    [self getItemAtIndex:_nextIndex].frame = _nextItemFrame;
    +}
    +
    +- (void)nextPage {
    +    [self.scrollView setContentOffset:CGPointMake(self.width * 2, 0) animated:YES];
    +}
    +
    +- (void)resetScrollView {
    +    if (self.scrollView.contentOffset.x / self.width == 1)
    +    {
    +        return;
    +    }
    +    [self setCurrentIndex:self.nextIndex];
    +    self.scrollView.contentOffset = CGPointMake(self.width, 0);
    +}
    +
    +#pragma mark Public Methods
    +
    +- (void)setIndicator:(WXIndicatorView *)indicator
    +{
    +    _indicator = indicator;
    +    [_indicator setPointCount:self.itemViews.count];
    +    [_indicator setCurrentPoint:_currentIndex];
    +}
    +
    +- (void)insertItemView:(UIView *)view atIndex:(NSInteger)index
    +{
    +    if (![self.itemViews containsObject:view]) {
    +        view.tag = self.itemViews.count;
    +        if (index < 0) {
    +            [self.itemViews addObject:view];
    +        } else {
    +            [self.itemViews insertObject:view atIndex:index];
    +        }
    +    }
    +    
    +    if (![self.scrollView.subviews containsObject:view]) {
    +        if (index < 0) {
    +            [self.scrollView addSubview:view];
    +        } else {
    +            [self.scrollView insertSubview:view atIndex:index];
    +        }
    +    }
    +    [self setCurrentIndex:_currentIndex];
    +    [self layoutSubviews];
    +}
    +
    +- (void)removeItemView:(UIView *)view
    +{
    +    if ([self.itemViews containsObject:view]) {
    +        [self.itemViews removeObject:view];
    +    }
    +    
    +    if ([self.scrollView.subviews containsObject:view]) {
    +        [view removeFromSuperview];
    +    }
    +    [self setCurrentIndex:_currentIndex];
    +    [self layoutSubviews];
    +}
    +
    +#pragma mark ScrollView Delegate
    +
    +- (void)scrollViewDidScroll:(UIScrollView *)scrollView
    +{
    +    CGFloat offX = scrollView.contentOffset.x;
    +    self.direction = offX > self.width ? DirectionLeft : offX < self.width ? DirectionRight : DirectionNone;
    +    if (self.delegate && [self.delegate respondsToSelector:@selector(recycleSliderView:didScroll:)]) {
    +        [self.delegate recycleSliderView:self didScroll:self.scrollView];
    +    }
    +}
    +
    +- (void)scrollViewWillBeginDragging:(UIScrollView *)scrollView
    +{
    +    if (self.delegate && [self.delegate respondsToSelector:@selector(scrollViewWillBeginDragging:)]) {
    +        [self.delegate scrollViewWillBeginDragging:self.scrollView];
    +    }
    +}
    +
    +- (void)scrollViewDidEndDragging:(UIScrollView *)scrollView willDecelerate:(BOOL)decelerate
    +{
    +    if (self.delegate && [self.delegate respondsToSelector:@selector(scrollViewDidEndDragging: willDecelerate:)]) {
    +        [self.delegate scrollViewDidEndDragging:self.scrollView willDecelerate:decelerate];
    +    }
    +}
    +
    +- (void)scrollViewDidEndDecelerating:(UIScrollView *)scrollView {
    +    [self resetScrollView];
    +}
    +
    +- (void)scrollViewDidEndScrollingAnimation:(UIScrollView *)scrollView {
    +    [self resetScrollView];
    +}
    +
    +@end
    +
    +@interface WXRecycleSliderComponent ()<WXRecycleSliderViewDelegate>
    +
    +@property (nonatomic, strong) WXRecycleSliderView *recycleSliderView;
    +@property (nonatomic, strong) NSTimer *autoTimer;
    +@property (nonatomic, assign) NSInteger currentIndex;
    +@property (nonatomic, assign) BOOL  autoPlay;
    +@property (nonatomic, assign) NSUInteger interval;
    +@property (nonatomic, assign) NSInteger index;
    +@property (nonatomic, assign) CGFloat lastOffsetXRatio;
    +@property (nonatomic, assign) CGFloat offsetXAccuracy;
    +@property (nonatomic, assign) BOOL  sliderChangeEvent;
    +@property (nonatomic, assign) BOOL  sliderScrollEvent;
    +@property (nonatomic, assign) BOOL  sliderScrollStartEvent;
    +@property (nonatomic, assign) BOOL  sliderScrollEndEvent;
    +@property (nonatomic, assign) BOOL  sliderStartEventFired;
    +@property (nonatomic, strong) NSMutableArray *childrenView;
    +@property (nonatomic, assign) BOOL scrollable;
    +
    +@end
    +
    +@implementation WXRecycleSliderComponent
    +
    +- (void) dealloc
    +{
    +    [self _stopAutoPlayTimer];
    +}
    +
    +- (instancetype)initWithRef:(NSString *)ref type:(NSString *)type styles:(NSDictionary *)styles attributes:(NSDictionary *)attributes events:(NSArray *)events weexInstance:(WXSDKInstance *)weexInstance
    +{
    +    if (self = [super initWithRef:ref type:type styles:styles attributes:attributes events:events weexInstance:weexInstance]) {
    +        _sliderChangeEvent = NO;
    +        _sliderScrollEvent = NO;
    +        _interval = 3000;
    +        _childrenView = [NSMutableArray new];
    +        _lastOffsetXRatio = 0;
    +        
    +        if (attributes[@"autoPlay"]) {
    +            _autoPlay = [attributes[@"autoPlay"] boolValue];
    +        }
    +        
    +        if (attributes[@"interval"]) {
    +            _interval = [attributes[@"interval"] integerValue];
    +        }
    +        
    +        if (attributes[@"index"]) {
    +            _index = [attributes[@"index"] integerValue];
    +        }
    +        
    +        _scrollable = attributes[@"scrollable"] ? [WXConvert BOOL:attributes[@"scrollable"]] : YES;
    +
    +        if (attributes[@"offsetXAccuracy"]) {
    +            _offsetXAccuracy = [WXConvert CGFloat:attributes[@"offsetXAccuracy"]];
    +        }
    +        
    +        self.cssNode->style.flex_direction = CSS_FLEX_DIRECTION_ROW;
    +    }
    +    return self;
    +}
    +
    +- (UIView *)loadView
    +{
    +    return [[WXRecycleSliderView alloc] init];
    +}
    +
    +- (void)viewDidLoad
    +{
    +    [super viewDidLoad];
    +    
    +    _recycleSliderView = (WXRecycleSliderView *)self.view;
    +    _recycleSliderView.delegate = self;
    +    _recycleSliderView.scrollView.pagingEnabled = YES;
    +    _recycleSliderView.exclusiveTouch = YES;
    +    _recycleSliderView.scrollView.scrollEnabled = _scrollable;
    +    
    +    if (_autoPlay) {
    +        [self _startAutoPlayTimer];
    +    } else {
    +        [self _stopAutoPlayTimer];
    +    }
    +}
    +
    +- (void)layoutDidFinish
    +{
    +    _recycleSliderView.currentIndex = _index;
    +}
    +
    +- (void)viewDidUnload
    +{
    +    [_childrenView removeAllObjects];
    +}
    +
    +- (void)insertSubview:(WXComponent *)subcomponent atIndex:(NSInteger)index
    +{
    +    if (subcomponent->_positionType == WXPositionTypeFixed) {
    +        [self.weexInstance.rootView addSubview:subcomponent.view];
    +        return;
    +    }
    +    
    +    // use _lazyCreateView to forbid component like cell's view creating
    +    if(_lazyCreateView) {
    +        subcomponent->_lazyCreateView = YES;
    +    }
    +    
    +    if (!subcomponent->_lazyCreateView || (self->_lazyCreateView && [self isViewLoaded])) {
    +        UIView *view = subcomponent.view;
    +        
    +        if(index < 0) {
    +            [self.childrenView addObject:view];
    +        }
    +        else {
    +            [self.childrenView insertObject:view atIndex:index];
    +        }
    +        
    +        WXRecycleSliderView *recycleSliderView = (WXRecycleSliderView *)self.view;
    +        if ([view isKindOfClass:[WXIndicatorView class]]) {
    +            [recycleSliderView addSubview:view];
    +            return;
    +        }
    +        
    +        subcomponent.isViewFrameSyncWithCalculated = NO;
    +        
    +        if (index == -1) {
    +            [recycleSliderView insertItemView:view atIndex:index];
    +        } else {
    +            NSInteger offset = 0;
    +            for (int i = 0; i < [self.childrenView count]; ++i) {
    +                if (index == i) break;
    +                
    +                if ([self.childrenView[i] isKindOfClass:[WXIndicatorView class]]) {
    +                    offset++;
    +                }
    +            }
    +            [recycleSliderView insertItemView:view atIndex:index - offset];
    +        }
    +        [recycleSliderView layoutSubviews];
    +    }
    +}
    +
    +- (void)willRemoveSubview:(WXComponent *)component
    +{
    +    UIView *view = component.view;
    +    
    +    if(self.childrenView && [self.childrenView containsObject:view]) {
    +        [self.childrenView removeObject:view];
    +    }
    +    
    +    WXRecycleSliderView *recycleSliderView = (WXRecycleSliderView *)_view;
    +    [recycleSliderView removeItemView:view];
    +    [recycleSliderView setCurrentIndex:0];
    +}
    +
    +- (void)updateAttributes:(NSDictionary *)attributes
    +{
    +    if (attributes[@"autoPlay"]) {
    +        _autoPlay = [attributes[@"autoPlay"] boolValue];
    +        if (_autoPlay) {
    +            [self _startAutoPlayTimer];
    +        } else {
    +            [self _stopAutoPlayTimer];
    +        }
    +    }
    +    
    +    if (attributes[@"interval"]) {
    +        _interval = [attributes[@"interval"] integerValue];
    +        
    +        [self _stopAutoPlayTimer];
    +        
    +        if (_autoPlay) {
    +            [self _startAutoPlayTimer];
    +        } 
    +    }
    +    
    +    if (attributes[@"index"]) {
    +        _index = [attributes[@"index"] integerValue];
    --- End diff --
    
    is WXConvert better\uff1f


---
If your project is set up for it, you can reply to this email and have your
reply appear on GitHub as well. If your project does not have this feature
enabled and wishes so, or if the feature is enabled but not working, please
contact infrastructure at infrastructure@apache.org or file a JIRA ticket
with INFRA.
---

[GitHub] incubator-weex pull request #210: * [ios] the new slider component which is ...

Posted by asfgit <gi...@git.apache.org>.
Github user asfgit closed the pull request at:

    https://github.com/apache/incubator-weex/pull/210


---
If your project is set up for it, you can reply to this email and have your
reply appear on GitHub as well. If your project does not have this feature
enabled and wishes so, or if the feature is enabled but not working, please
contact infrastructure at infrastructure@apache.org or file a JIRA ticket
with INFRA.
---

Re: [GitHub] incubator-weex pull request #210: * [ios] the new slider component which is ...

Posted by "刘洪峰(孤剑)" <ho...@alibaba-inc.com>.
I agree with your opinion. So, I add a component named cycleslider, and keep the original slider component.
From now on we only maintain cycleslider, no longer maintain slider.  All new features are only added to cycleslider.
I added an attribute of setting pages to cycle, which is named “infinite”. The latest code has been submitted. 


--bluebird78999
Thank you for your support.


在 2017/4/5 上午11:51,“Adam Feng”<cx...@gmail.com> 写入:

>I suppose it’s a good start point. “slider” component has too much complicated and deprecated logic which has made it hard to maintain.
>
>For a clearer code review, we need more detailed information for this PR,  for example, why is the old slider difficult to understand?  What is done to make the new slider clear and easy to maintain?
>
>And to be compatible,  I suggest to use another tag name for the new slider component,  for the old component is being used by too many users,  if the new slider component has some bugs, it’s hart to roll back.
>
>Finally,   test cases must be added for the new component.
>
>Thanks.
>Adam Feng
>
>On 2017年4月5日 +0800 AM11:47, 刘洪峰(孤剑) <ho...@alibaba-inc.com>, wrote:
>> Hi,All:
>> I wrote a new slider component which is named WXRecycleSliderComponent to replace the old slider component which is named WXSliderComponent.(PR: https://github.com/apache/incubator-weex/pull/210)
>> The logic of old slider component is difficult to understand, and there are a lot of bugs. The new slider component’s line is reduced by a quarter, logic is clear and easy to maintain. So I create a pull request to replace the WXSliderComponent by my new WXRecycleSliderComponent.
>> You can use the following demos to test:
>> .we demo: http://dotwe.org/weex/6c4b4a98f6d17c8b84d278fe2d0b8cb1
>> .vue demo: http://dotwe.org/vue/9542e460d868e211ad2463e648a80cef
>> weex playgrournd demo.
>>
>> --bluebird78999
>> Thank you for your support.
>>
>> 在 2017/4/5 上午11:05,“bluebird78999”<gi...@git.apache.org> 写入:
>>
>> > GitHub user bluebird78999 opened a pull request:
>> >
>> > https://github.com/apache/incubator-weex/pull/210
>> >
>> > * [ios] the new slider component which is named WXRecycleSliderCompon
>> >
>> > [ios] the new slider component which is named WXRecycleSliderComponent to replace the old slider component which is name WXSliderComponent.
>> > <!--
>> >
>> > Notes: Weex will move into Apache Software Foundation (ASF) on Feb 24 2017.
>> >
>> > Our new GitHub repo is https://github.com/apache/incubator-weex
>> >
>> > After Feb 24 2017, we only accept pull requests from https://github.com/apache/incubator-weex
>> >
>> > Thank you for your support.
>> >
>> > ----
>> >
>> > 擨æ≥∂ïπ˚Weex å°∫äº⁄ 2017-02-24 这移èΩ“ Apache 僺éΩŒäπ˚
>> >
>> > 居昶æ√Œä»¬äπ˚ä∏¿ç‰¨æˆ°ç˚≥ GitHub 仄庄ïπ˚https://github.com/apache/incubator-weex å’¶å˛¨é≠£éΩ‘ç»§ç»–æ⁄¥å∂˜å€§å®¶ç˚≥ pull requestã•≠
>> >
>> > æ˝´å€˚诜æ∞∑请å∑“擨ïπ˚https://github.com/weexteam/article/issues/130
>> >
>> > æ≥ƒè°¢ç∆∫解傑扯摙
>> >
>> > --
>> >
>> > <!--
>> >
>> > It's ***RECOMMENDED*** to submit typo fix, new demo and tiny bugfix to `dev` branch. New feature and other modifications can be submitted to "domain" branch including `ios`, `android`, `jsfm`, `html5`.
>> >
>> > See [Branch Strategy](https://github.com/alibaba/weex/blob/dev/CONTRIBUTING.md#branch-management) for more detail.
>> >
>> > ----
>> >
>> > ïπ√è¯·å˛¨***æ∂∆亀***å≈Ÿå√ é˙€è¿˙段æ∂∂è¿°ïπ≈
>> >
>> > é‰˙å√«å–˜ä¿®æ‰’㕙戰 demoã•™è≤∞å°∂ç˚≥ bugfix é∞∏å∂¯ä»¥ç˝´æ⁄¥æ∂∆å√° `dev` å√∫扯ïπ˝æˆ°é˛•æ±≠以å∂…ä»»ä∏ä∏ 丟确å®˚å∏±å„Ÿéˇ¢ç˚≥扒全ïπ‘请æ∂∆亀å√°å¯’åº‰â•˛é¢∫åƒƒâ•ˇç˚≥å√∫扯ïπ√`ios`ã•™`android`ã•™`jsfm`ã•™`html5`ïπ≈ã•≠
>> >
>> > æƒ¥ç˛—å®‘æ´ç˚≥[å√∫扯疈ç¥ (è—±æˆΩ)](https://github.com/alibaba/weex/blob/dev/CONTRIBUTING.md#branch-management)ã•≠
>> >
>> > --
>> >
>> >
>> > You can merge this pull request into a Git repository by running:
>> >
>> > $ git pull https://github.com/bluebird78999/incubator-weex 0.12-dev-newSlider
>> >
>> > Alternatively you can review and apply these changes as the patch at:
>> >
>> > https://github.com/apache/incubator-weex/pull/210.patch
>> >
>> > To close this pull request, make a commit to your master/trunk branch
>> > with (at least) the following in the commit message:
>> >
>> > This closes #210
>> >
>> > ----
>> > commit b7bcdb1ccd807ee1e17e54de124dedf77746f022
>> > Author: LiuHongfeng(GuJian) <larryworking@gmail.com
>> > Date: 2017-04-05T03:00:00Z
>> >
>> > * [ios] the new slider component which is named WXRecycleSliderComponent to replace the old slider component which is name WXSliderComponent.
>> >
>> > ----
>> >
>> >
>> > ---
>> > If your project is set up for it, you can reply to this email and have your
>> > reply appear on GitHub as well. If your project does not have this feature
>> > enabled and wishes so, or if the feature is enabled but not working, please
>> > contact infrastructure at infrastructure@apache.org or file a JIRA ticket
>> > with INFRA.
>> > ---
>>
>>





Re: [GitHub] incubator-weex pull request #210: * [ios] the new slider component which is ...

Posted by "宋海波(齐山)" <je...@alibaba-inc.com>.
Hi,All:

I think it's necessary to describe how you refactor the slidercompnonent in more detail and which method you used to improve slider.
About compatible,if WXRecycleSliderComponent support all the old slider api and it can run all the test case successfully . I think it no need to maintain two copies code to finish one component. it is more difficult to maintain. 
is it better to change WXRecycleSliderComponent to WXSliderComponent?

Best Regards
Jerry

> 在 2017年4月5日,上午11:51,Adam Feng <cxfeng1@gmail.com <ma...@gmail.com>> 写道:
> 
> I suppose it’s a good start point. “slider” component has too much complicated and deprecated logic which has made it hard to maintain.
> 
> For a clearer code review, we need more detailed information for this PR,  for example, why is the old slider difficult to understand?  What is done to make the new slider clear and easy to maintain?
> 
> And to be compatible,  I suggest to use another tag name for the new slider component,  for the old component is being used by too many users,  if the new slider component has some bugs, it’s hart to roll back.
> 
> Finally,   test cases must be added for the new component.
> 
> Thanks.
> Adam Feng
> 
> On 2017年4月5日 +0800 AM11:47, 刘洪峰(孤剑) <hongfeng.lhf@alibaba-inc.com <ma...@alibaba-inc.com>>, wrote:
>> Hi,All:
>> I wrote a new slider component which is named WXRecycleSliderComponent to replace the old slider component which is named WXSliderComponent.(PR: https://github.com/apache/incubator-weex/pull/210 <https://github.com/apache/incubator-weex/pull/210>)
>> The logic of old slider component is difficult to understand, and there are a lot of bugs. The new slider component’s line is reduced by a quarter, logic is clear and easy to maintain. So I create a pull request to replace the WXSliderComponent by my new WXRecycleSliderComponent.
>> You can use the following demos to test:
>> .we demo: http://dotwe.org/weex/6c4b4a98f6d17c8b84d278fe2d0b8cb1 <http://dotwe.org/weex/6c4b4a98f6d17c8b84d278fe2d0b8cb1>
>> .vue demo: http://dotwe.org/vue/9542e460d868e211ad2463e648a80cef <http://dotwe.org/vue/9542e460d868e211ad2463e648a80cef>
>> weex playgrournd demo.
>> 
>> --bluebird78999
>> Thank you for your support.
>> 
>> 在 2017/4/5 上午11:05,“bluebird78999”<git@git.apache.org <ma...@git.apache.org>> 写入:
>> 
>>> GitHub user bluebird78999 opened a pull request:
>>> 
>>> https://github.com/apache/incubator-weex/pull/210 <https://github.com/apache/incubator-weex/pull/210>
>>> 
>>> * [ios] the new slider component which is named WXRecycleSliderCompon
>>> 
>>> [ios] the new slider component which is named WXRecycleSliderComponent to replace the old slider component which is name WXSliderComponent.
>>> <!--
>>> 
>>> Notes: Weex will move into Apache Software Foundation (ASF) on Feb 24 2017.
>>> 
>>> Our new GitHub repo is https://github.com/apache/incubator-weex
>>> 
>>> After Feb 24 2017, we only accept pull requests from https://github.com/apache/incubator-weex
>>> 
>>> Thank you for your support.
>>> 
>>> ----
>>> 
>>> 擨æ≥∂ïπ˚Weex å°∫äº⁄ 2017-02-24 这移èΩ“ Apache 僺éΩŒäπ˚
>>> 
>>> 居昶æ√Œä»¬äπ˚ä∏¿ç‰¨æˆ°ç˚≥ GitHub 仄庄ïπ˚https://github.com/apache/incubator-weex <https://github.com/apache/incubator-weex> å’¶å˛¨é≠£éΩ‘ç»§ç»–æ⁄¥å∂˜å€§å®¶ç˚≥ pull requestã•≠
>>> 
>>> æ˝´å€˚诜æ∞∑请å∑“擨ïπ˚https://github.com/weexteam/article/issues/130 <https://github.com/weexteam/article/issues/130>
>>> 
>>> æ≥ƒè°¢ç∆∫解傑扯摙
>>> 
>>> --
>>> 
>>> <!--
>>> 
>>> It's ***RECOMMENDED*** to submit typo fix, new demo and tiny bugfix to `dev` branch. New feature and other modifications can be submitted to "domain" branch including `ios`, `android`, `jsfm`, `html5`.
>>> 
>>> See [Branch Strategy](https://github.com/alibaba/weex/blob/dev/CONTRIBUTING.md#branch-management <https://github.com/alibaba/weex/blob/dev/CONTRIBUTING.md#branch-management>) for more detail.
>>> 
>>> ----
>>> 
>>> ïπ√è¯·å˛¨***æ∂∆亀***å≈Ÿå√ é˙€è¿˙段æ∂∂è¿°ïπ≈
>>> 
>>> é‰˙å√«å–˜ä¿®æ‰’㕙戰 demoã•™è≤∞å°∂ç˚≥ bugfix é∞∏å∂¯ä»¥ç˝´æ⁄¥æ∂∆å√° `dev` å√∫扯ïπ˝æˆ°é˛•æ±≠以å∂…ä»»ä∏ä∏ 丟确å®˚å∏±å„Ÿéˇ¢ç˚≥扒全ïπ‘请æ∂∆亀å√°å¯’åº‰â•˛é¢∫åƒƒâ•ˇç˚≥å√∫扯ïπ√`ios`ã•™`android`ã•™`jsfm`ã•™`html5`ïπ≈ã•≠
>>> 
>>> æƒ¥ç˛—å®‘æ´ç˚≥[å√∫扯疈ç¥ (è—±æˆΩ)](https://github.com/alibaba/weex/blob/dev/CONTRIBUTING.md#branch-management <https://github.com/alibaba/weex/blob/dev/CONTRIBUTING.md#branch-management>)ã•≠
>>> 
>>> --
>>> 
>>> 
>>> You can merge this pull request into a Git repository by running:
>>> 
>>> $ git pull https://github.com/bluebird78999/incubator-weex 0.12-dev-newSlider
>>> 
>>> Alternatively you can review and apply these changes as the patch at:
>>> 
>>> https://github.com/apache/incubator-weex/pull/210.patch
>>> 
>>> To close this pull request, make a commit to your master/trunk branch
>>> with (at least) the following in the commit message:
>>> 
>>> This closes #210
>>> 
>>> ----
>>> commit b7bcdb1ccd807ee1e17e54de124dedf77746f022
>>> Author: LiuHongfeng(GuJian) <larryworking@gmail.com
>>> Date: 2017-04-05T03:00:00Z
>>> 
>>> * [ios] the new slider component which is named WXRecycleSliderComponent to replace the old slider component which is name WXSliderComponent.
>>> 
>>> ----
>>> 
>>> 
>>> ---
>>> If your project is set up for it, you can reply to this email and have your
>>> reply appear on GitHub as well. If your project does not have this feature
>>> enabled and wishes so, or if the feature is enabled but not working, please
>>> contact infrastructure at infrastructure@apache.org or file a JIRA ticket
>>> with INFRA.
>>> ---


Re: [GitHub] incubator-weex pull request #210: * [ios] the new slider component which is ...

Posted by "宋海波(齐山)" <je...@alibaba-inc.com>.
Hi,All:

I think it's necessary to describe how you refactor the slidercompnonent in more detail and which method you used to improve slider.
About compatible,if WXRecycleSliderComponent support all the old slider api and it can run all the test case successfully . I think it no need to maintain two copies code to finish one component. it is more difficult to maintain. 
is it better to change WXRecycleSliderComponent to WXSliderComponent?

Best Regards
Jerry

> 在 2017年4月5日,上午11:51,Adam Feng <cxfeng1@gmail.com <ma...@gmail.com>> 写道:
> 
> I suppose it’s a good start point. “slider” component has too much complicated and deprecated logic which has made it hard to maintain.
> 
> For a clearer code review, we need more detailed information for this PR,  for example, why is the old slider difficult to understand?  What is done to make the new slider clear and easy to maintain?
> 
> And to be compatible,  I suggest to use another tag name for the new slider component,  for the old component is being used by too many users,  if the new slider component has some bugs, it’s hart to roll back.
> 
> Finally,   test cases must be added for the new component.
> 
> Thanks.
> Adam Feng
> 
> On 2017年4月5日 +0800 AM11:47, 刘洪峰(孤剑) <hongfeng.lhf@alibaba-inc.com <ma...@alibaba-inc.com>>, wrote:
>> Hi,All:
>> I wrote a new slider component which is named WXRecycleSliderComponent to replace the old slider component which is named WXSliderComponent.(PR: https://github.com/apache/incubator-weex/pull/210 <https://github.com/apache/incubator-weex/pull/210>)
>> The logic of old slider component is difficult to understand, and there are a lot of bugs. The new slider component’s line is reduced by a quarter, logic is clear and easy to maintain. So I create a pull request to replace the WXSliderComponent by my new WXRecycleSliderComponent.
>> You can use the following demos to test:
>> .we demo: http://dotwe.org/weex/6c4b4a98f6d17c8b84d278fe2d0b8cb1 <http://dotwe.org/weex/6c4b4a98f6d17c8b84d278fe2d0b8cb1>
>> .vue demo: http://dotwe.org/vue/9542e460d868e211ad2463e648a80cef <http://dotwe.org/vue/9542e460d868e211ad2463e648a80cef>
>> weex playgrournd demo.
>> 
>> --bluebird78999
>> Thank you for your support.
>> 
>> 在 2017/4/5 上午11:05,“bluebird78999”<git@git.apache.org <ma...@git.apache.org>> 写入:
>> 
>>> GitHub user bluebird78999 opened a pull request:
>>> 
>>> https://github.com/apache/incubator-weex/pull/210 <https://github.com/apache/incubator-weex/pull/210>
>>> 
>>> * [ios] the new slider component which is named WXRecycleSliderCompon
>>> 
>>> [ios] the new slider component which is named WXRecycleSliderComponent to replace the old slider component which is name WXSliderComponent.
>>> <!--
>>> 
>>> Notes: Weex will move into Apache Software Foundation (ASF) on Feb 24 2017.
>>> 
>>> Our new GitHub repo is https://github.com/apache/incubator-weex <https://github.com/apache/incubator-weex>
>>> 
>>> After Feb 24 2017, we only accept pull requests from https://github.com/apache/incubator-weex <https://github.com/apache/incubator-weex>
>>> 
>>> Thank you for your support.
>>> 
>>> ----
>>> 
>>> 擨æ≥∂ïπ˚Weex å°∫äº⁄ 2017-02-24 这移èΩ“ Apache 僺éΩŒäπ˚
>>> 
>>> 居昶æ√Œä»¬äπ˚ä∏¿ç‰¨æˆ°ç˚≥ GitHub 仄庄ïπ˚https://github.com/apache/incubator-weex <https://github.com/apache/incubator-weex> å’¶å˛¨é≠£éΩ‘ç»§ç»–æ⁄¥å∂˜å€§å®¶ç˚≥ pull requestã•≠
>>> 
>>> æ˝´å€˚诜æ∞∑请å∑“擨ïπ˚https://github.com/weexteam/article/issues/130 <https://github.com/weexteam/article/issues/130>
>>> 
>>> æ≥ƒè°¢ç∆∫解傑扯摙
>>> 
>>> --
>>> 
>>> <!--
>>> 
>>> It's ***RECOMMENDED*** to submit typo fix, new demo and tiny bugfix to `dev` branch. New feature and other modifications can be submitted to "domain" branch including `ios`, `android`, `jsfm`, `html5`.
>>> 
>>> See [Branch Strategy](https://github.com/alibaba/weex/blob/dev/CONTRIBUTING.md#branch-management <https://github.com/alibaba/weex/blob/dev/CONTRIBUTING.md#branch-management>) for more detail.
>>> 
>>> ----
>>> 
>>> ïπ√è¯·å˛¨***æ∂∆亀***å≈Ÿå√ é˙€è¿˙段æ∂∂è¿°ïπ≈
>>> 
>>> é‰˙å√«å–˜ä¿®æ‰’㕙戰 demoã•™è≤∞å°∂ç˚≥ bugfix é∞∏å∂¯ä»¥ç˝´æ⁄¥æ∂∆å√° `dev` å√∫扯ïπ˝æˆ°é˛•æ±≠以å∂…ä»»ä∏ä∏ 丟确å®˚å∏±å„Ÿéˇ¢ç˚≥扒全ïπ‘请æ∂∆亀å√°å¯’åº‰â•˛é¢∫åƒƒâ•ˇç˚≥å√∫扯ïπ√`ios`ã•™`android`ã•™`jsfm`ã•™`html5`ïπ≈ã•≠
>>> 
>>> æƒ¥ç˛—å®‘æ´ç˚≥[å√∫扯疈ç¥ (è—±æˆΩ)](https://github.com/alibaba/weex/blob/dev/CONTRIBUTING.md#branch-management <https://github.com/alibaba/weex/blob/dev/CONTRIBUTING.md#branch-management>)ã•≠
>>> 
>>> --
>>> 
>>> 
>>> You can merge this pull request into a Git repository by running:
>>> 
>>> $ git pull https://github.com/bluebird78999/incubator-weex <https://github.com/bluebird78999/incubator-weex> 0.12-dev-newSlider
>>> 
>>> Alternatively you can review and apply these changes as the patch at:
>>> 
>>> https://github.com/apache/incubator-weex/pull/210.patch <https://github.com/apache/incubator-weex/pull/210.patch>
>>> 
>>> To close this pull request, make a commit to your master/trunk branch
>>> with (at least) the following in the commit message:
>>> 
>>> This closes #210
>>> 
>>> ----
>>> commit b7bcdb1ccd807ee1e17e54de124dedf77746f022
>>> Author: LiuHongfeng(GuJian) <larryworking@gmail.com
>>> Date: 2017-04-05T03:00:00Z
>>> 
>>> * [ios] the new slider component which is named WXRecycleSliderComponent to replace the old slider component which is name WXSliderComponent.
>>> 
>>> ----
>>> 
>>> 
>>> ---
>>> If your project is set up for it, you can reply to this email and have your
>>> reply appear on GitHub as well. If your project does not have this feature
>>> enabled and wishes so, or if the feature is enabled but not working, please
>>> contact infrastructure at infrastructure@apache.org or file a JIRA ticket
>>> with INFRA.
>>> ---


Re: [GitHub] incubator-weex pull request #210: * [ios] the new slider component which is ...

Posted by Adam Feng <cx...@gmail.com>.
I suppose it’s a good start point. “slider” component has too much complicated and deprecated logic which has made it hard to maintain.

For a clearer code review, we need more detailed information for this PR,  for example, why is the old slider difficult to understand?  What is done to make the new slider clear and easy to maintain?

And to be compatible,  I suggest to use another tag name for the new slider component,  for the old component is being used by too many users,  if the new slider component has some bugs, it’s hart to roll back.

Finally,   test cases must be added for the new component.

Thanks.
Adam Feng

On 2017年4月5日 +0800 AM11:47, 刘洪峰(孤剑) <ho...@alibaba-inc.com>, wrote:
> Hi,All:
> I wrote a new slider component which is named WXRecycleSliderComponent to replace the old slider component which is named WXSliderComponent.(PR: https://github.com/apache/incubator-weex/pull/210)
> The logic of old slider component is difficult to understand, and there are a lot of bugs. The new slider component’s line is reduced by a quarter, logic is clear and easy to maintain. So I create a pull request to replace the WXSliderComponent by my new WXRecycleSliderComponent.
> You can use the following demos to test:
> .we demo: http://dotwe.org/weex/6c4b4a98f6d17c8b84d278fe2d0b8cb1
> .vue demo: http://dotwe.org/vue/9542e460d868e211ad2463e648a80cef
> weex playgrournd demo.
>
> --bluebird78999
> Thank you for your support.
>
> 在 2017/4/5 上午11:05,“bluebird78999”<gi...@git.apache.org> 写入:
>
> > GitHub user bluebird78999 opened a pull request:
> >
> > https://github.com/apache/incubator-weex/pull/210
> >
> > * [ios] the new slider component which is named WXRecycleSliderCompon
> >
> > [ios] the new slider component which is named WXRecycleSliderComponent to replace the old slider component which is name WXSliderComponent.
> > <!--
> >
> > Notes: Weex will move into Apache Software Foundation (ASF) on Feb 24 2017.
> >
> > Our new GitHub repo is https://github.com/apache/incubator-weex
> >
> > After Feb 24 2017, we only accept pull requests from https://github.com/apache/incubator-weex
> >
> > Thank you for your support.
> >
> > ----
> >
> > 擨æ≥∂ïπ˚Weex å°∫äº⁄ 2017-02-24 这移èΩ“ Apache 僺éΩŒäπ˚
> >
> > 居昶æ√Œä»¬äπ˚ä∏¿ç‰¨æˆ°ç˚≥ GitHub 仄庄ïπ˚https://github.com/apache/incubator-weex å’¶å˛¨é≠£éΩ‘ç»§ç»–æ⁄¥å∂˜å€§å®¶ç˚≥ pull requestã•≠
> >
> > æ˝´å€˚诜æ∞∑请å∑“擨ïπ˚https://github.com/weexteam/article/issues/130
> >
> > æ≥ƒè°¢ç∆∫解傑扯摙
> >
> > --
> >
> > <!--
> >
> > It's ***RECOMMENDED*** to submit typo fix, new demo and tiny bugfix to `dev` branch. New feature and other modifications can be submitted to "domain" branch including `ios`, `android`, `jsfm`, `html5`.
> >
> > See [Branch Strategy](https://github.com/alibaba/weex/blob/dev/CONTRIBUTING.md#branch-management) for more detail.
> >
> > ----
> >
> > ïπ√è¯·å˛¨***æ∂∆亀***å≈Ÿå√ é˙€è¿˙段æ∂∂è¿°ïπ≈
> >
> > é‰˙å√«å–˜ä¿®æ‰’㕙戰 demoã•™è≤∞å°∂ç˚≥ bugfix é∞∏å∂¯ä»¥ç˝´æ⁄¥æ∂∆å√° `dev` å√∫扯ïπ˝æˆ°é˛•æ±≠以å∂…ä»»ä∏ä∏ 丟确å®˚å∏±å„Ÿéˇ¢ç˚≥扒全ïπ‘请æ∂∆亀å√°å¯’åº‰â•˛é¢∫åƒƒâ•ˇç˚≥å√∫扯ïπ√`ios`ã•™`android`ã•™`jsfm`ã•™`html5`ïπ≈ã•≠
> >
> > æƒ¥ç˛—å®‘æ´ç˚≥[å√∫扯疈ç¥ (è—±æˆΩ)](https://github.com/alibaba/weex/blob/dev/CONTRIBUTING.md#branch-management)ã•≠
> >
> > --
> >
> >
> > You can merge this pull request into a Git repository by running:
> >
> > $ git pull https://github.com/bluebird78999/incubator-weex 0.12-dev-newSlider
> >
> > Alternatively you can review and apply these changes as the patch at:
> >
> > https://github.com/apache/incubator-weex/pull/210.patch
> >
> > To close this pull request, make a commit to your master/trunk branch
> > with (at least) the following in the commit message:
> >
> > This closes #210
> >
> > ----
> > commit b7bcdb1ccd807ee1e17e54de124dedf77746f022
> > Author: LiuHongfeng(GuJian) <larryworking@gmail.com
> > Date: 2017-04-05T03:00:00Z
> >
> > * [ios] the new slider component which is named WXRecycleSliderComponent to replace the old slider component which is name WXSliderComponent.
> >
> > ----
> >
> >
> > ---
> > If your project is set up for it, you can reply to this email and have your
> > reply appear on GitHub as well. If your project does not have this feature
> > enabled and wishes so, or if the feature is enabled but not working, please
> > contact infrastructure at infrastructure@apache.org or file a JIRA ticket
> > with INFRA.
> > ---
>
>

Re: [GitHub] incubator-weex pull request #210: * [ios] the new slider component which is ...

Posted by "刘洪峰(孤剑)" <ho...@alibaba-inc.com>.
Hi,All:
I wrote a new slider component which is named WXRecycleSliderComponent to replace the old slider component which is named WXSliderComponent.(PR: https://github.com/apache/incubator-weex/pull/210)
The logic of old slider component is difficult to understand, and there are a lot of bugs. The new slider component’s line is reduced by a quarter, logic is clear and easy to maintain. So I create a pull request to replace the WXSliderComponent by my new WXRecycleSliderComponent.
You can use the following demos to test:
.we demo: http://dotwe.org/weex/6c4b4a98f6d17c8b84d278fe2d0b8cb1
.vue demo: http://dotwe.org/vue/9542e460d868e211ad2463e648a80cef
weex playgrournd demo.

--bluebird78999
Thank you for your support.

在 2017/4/5 上午11:05,“bluebird78999”<gi...@git.apache.org> 写入:

>GitHub user bluebird78999 opened a pull request:
>
>    https://github.com/apache/incubator-weex/pull/210
>
>    * [ios] the new slider component which is named WXRecycleSliderCompon
>
>     [ios] the new slider component which is named WXRecycleSliderComponent to replace the old slider component which is name WXSliderComponent.
>    <!--
>    
>    Notes: Weex will move into Apache Software Foundation (ASF) on Feb 24 2017.
>    
>    Our new GitHub repo is https://github.com/apache/incubator-weex
>    
>    After Feb 24 2017, we only accept pull requests from https://github.com/apache/incubator-weex
>    
>    Thank you for your support.
>    
>    ----
>    
>    擨æ≥∂ïπ˚Weex å°∫äº⁄ 2017-02-24 这移èΩ“ Apache 僺éΩŒäπ˚
>    
>    居昶æ√Œä»¬äπ˚ä∏¿ç‰¨æˆ°ç˚≥ GitHub 仄庄ïπ˚https://github.com/apache/incubator-weex å’¶å˛¨é≠£éΩ‘ç»§ç»–æ⁄¥å∂˜å€§å®¶ç˚≥ pull requestã•≠
>    
>    æ˝´å€˚诜æ∞∑请å∑“擨ïπ˚https://github.com/weexteam/article/issues/130
>    
>    æ≥ƒè°¢ç∆∫解傑扯摙
>    
>    -->
>    
>    <!--
>    
>    It's ***RECOMMENDED*** to submit typo fix, new demo and tiny bugfix to `dev` branch. New feature and other modifications can be submitted to "domain" branch including `ios`, `android`, `jsfm`, `html5`.
>        
>    See [Branch Strategy](https://github.com/alibaba/weex/blob/dev/CONTRIBUTING.md#branch-management) for more detail.
>    
>    ----
>    
>    ïπ√è¯·å˛¨***æ∂∆亀***å≈Ÿå√ é˙€è¿˙段æ∂∂è¿°ïπ≈
>    
>    é‰˙å√«å–˜ä¿®æ‰’㕙戰 demoã•™è≤∞å°∂ç˚≥ bugfix é∞∏å∂¯ä»¥ç˝´æ⁄¥æ∂∆å√° `dev` å√∫扯ïπ˝æˆ°é˛•æ±≠以å∂…ä»»ä∏ä∏ 丟确å®˚å∏±å„Ÿéˇ¢ç˚≥扒全ïπ‘请æ∂∆亀å√°å¯’åº‰â•˛é¢∫åƒƒâ•ˇç˚≥å√∫扯ïπ√`ios`ã•™`android`ã•™`jsfm`ã•™`html5`ïπ≈ã•≠
>    
>    æƒ¥ç˛—å®‘æ´ç˚≥[å√∫扯疈ç¥ (è—±æˆΩ)](https://github.com/alibaba/weex/blob/dev/CONTRIBUTING.md#branch-management)ã•≠
>    
>    -->
>
>
>You can merge this pull request into a Git repository by running:
>
>    $ git pull https://github.com/bluebird78999/incubator-weex 0.12-dev-newSlider
>
>Alternatively you can review and apply these changes as the patch at:
>
>    https://github.com/apache/incubator-weex/pull/210.patch
>
>To close this pull request, make a commit to your master/trunk branch
>with (at least) the following in the commit message:
>
>    This closes #210
>    
>----
>commit b7bcdb1ccd807ee1e17e54de124dedf77746f022
>Author: LiuHongfeng(GuJian) <la...@gmail.com>
>Date:   2017-04-05T03:00:00Z
>
>    * [ios] the new slider component which is named WXRecycleSliderComponent to replace the old slider component which is name WXSliderComponent.
>
>----
>
>
>---
>If your project is set up for it, you can reply to this email and have your
>reply appear on GitHub as well. If your project does not have this feature
>enabled and wishes so, or if the feature is enabled but not working, please
>contact infrastructure at infrastructure@apache.org or file a JIRA ticket
>with INFRA.
>---