//
//  GMScrollView.m
//  Gengmei
//
//  Created by wangyang on 15/12/3.
//  Copyright © 2015年 Wanmeichuangyi. All rights reserved.
//

#import "GMScrollView.h"
#import <Masonry/Masonry.h>

@interface GMScrollView () {
    
}
@end

@implementation GMScrollView
@dynamic contentInset;


- (instancetype)initWithFrame:(CGRect)frame
{
    self = [super initWithFrame:frame];
    if (self) {
        [self setup];
    }
    return self;
}

- (void)awakeFromNib{
    [super awakeFromNib];
    [self setup];
}

- (void)setup{
    
}

- (void)containerAppendSubview:(UIView *)view{
    [self.container addSubview:view];
}

- (void)containerLayoutSubview {
    
    UIView *preView;
    for (NSInteger i = 0; i < self.container.subviews.count ; i ++) {
        UIView *currentView = self.container.subviews[i];
        if (self.layout == GMScrollViewLayoutHorizontal) {
            [currentView mas_makeConstraints:^(MASConstraintMaker *make) {
                if ( i == 0) {
                    make.left.mas_equalTo(0);
                }else{
                    make.left.equalTo(preView.mas_right).offset(self.innerSpace);
                }
                make.top.mas_equalTo(0);
                make.bottom.mas_equalTo(0);
                if (self.itemSize.width != 0) {
                    make.width.mas_equalTo(self.itemSize.width);
                }
                if (self.itemSize.height != 0) {
                    make.height.mas_equalTo(self.itemSize.height);
                }
                if (i == self.container.subviews.count - 1) {
                    make.right.mas_equalTo(0);
                }
            }];
        }else{
            [currentView mas_makeConstraints:^(MASConstraintMaker *make) {
                make.left.mas_equalTo(0);
                make.right.mas_equalTo(0);
                if (self.itemSize.width != 0) {
                    make.width.mas_equalTo(self.itemSize.width);
                }
                if (self.itemSize.height != 0) {
                    make.height.mas_equalTo(self.itemSize.height);
                }
                
                if ( i == 0) {
                    make.top.mas_equalTo(0);
                }else{
                    make.top.equalTo(preView.mas_bottom).offset(self.innerSpace);
                }
                
                if (i == self.container.subviews.count - 1) {
                    make.bottom.mas_equalTo(0);
                }
            }];
        }
        
        currentView.tag = i;
        currentView.userInteractionEnabled = true;
        UITapGestureRecognizer *tapGest = [[UITapGestureRecognizer alloc] initWithTarget:self action:@selector(itemClicked:)];
        [currentView addGestureRecognizer:tapGest];
        preView = currentView;
    }
}

- (void)itemClicked:(UITapGestureRecognizer *)guester
{
    if (self.itemClickBlock) {
        self.itemClickBlock([guester view].tag);
    }
}

- (void)containerRemoveAllSubviews {
    [self.container.subviews makeObjectsPerformSelector:@selector(removeFromSuperview)];
}

- (UIView *)container{
    if (!_container) {
        _container = [UIView new];
        _container.backgroundColor = [UIColor clearColor];
        [self addSubview:_container];
        [_container mas_makeConstraints:^(MASConstraintMaker *make) {
            make.edges.insets(UIEdgeInsetsZero);
        }];
    }
    return _container;
}

@end