123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152153154155156157158159160161162163164165166167168169170171172173174175176177178179180181182183184 |
- //
- // FKSelectSpecContentView.m
- // FirstLink
- //
- // Created by jack on 16/1/18.
- // Copyright © 2016年 FirstLink. All rights reserved.
- //
- #import "FKSelectSpecContentView.h"
- #import "FKSelectSpecUnitView.h"
- #import "FKProductSpecItem.h"
- #import "FKBasicSpecItem.h"
- #import "FKSelectAlertView.h"
- #define kUnitViewTagBase 88
- @interface FKSelectSpecContentView () <FKSelectSpecUnitViewDelegate>
- @property (nonatomic, strong) NSArray *specItemArray;
- @property (nonatomic, strong) UIScrollView *scrollView;
- @property (nonatomic, strong) FKSelectAlertView *alertView;
- @end
- @implementation FKSelectSpecContentView
- - (instancetype)initWithFrame:(CGRect)frame{
- if (self = [super initWithFrame:frame]) {
-
- [self addAllSubviews];
- self.backgroundColor = UIColorFromRGB(0xf4f4f4);
- }
- return self;
- }
- - (void)buildForSpecItemArray:(NSArray *)specItemArray showSize:(BOOL)showSize{
-
- self.specItemArray = specItemArray;
- [self.scrollView.subviews makeObjectsPerformSelector:@selector(removeFromSuperview)];
-
- if (self.specItemArray.count == 0) return;
-
- UIView *uperUnitView = nil;
-
- for (int i = 0; i < self.specItemArray.count; i++) {
-
- FKProductSpecItem *specItem = self.specItemArray[i];
-
- FKSelectSpecUnitView *unitView = [[FKSelectSpecUnitView alloc]init];
- unitView.tag = kUnitViewTagBase + i;
- unitView.showSizeIcon = (i == 0 ? showSize : NO);
- unitView.delegate = self;
-
- CGFloat height = [FKSelectSpecUnitView contentHeightForSpecItem:specItem];
- [self.scrollView addSubview:unitView];
-
- [unitView mas_makeConstraints:^(MASConstraintMaker *make) {
- if (i == 0){
- make.top.equalTo(self.scrollView);
- make.width.equalTo(self.scrollView);
- }else{
- make.top.equalTo(uperUnitView.mas_bottom);
- }
- make.left.right.equalTo(self.scrollView);
- make.height.mas_equalTo(height);
- }];
-
- [unitView setContentForSpecItem:specItem];
- uperUnitView = unitView;
- }
-
- [self.scrollView addSubview:self.amountView];
- self.amountView.amountLabel.text = @"1";
- [self.amountView mas_makeConstraints:^(MASConstraintMaker *make) {
- make.top.equalTo(uperUnitView.mas_bottom).offset(5);
- make.left.right.equalTo(self.scrollView);
- make.height.mas_equalTo(30);
- }];
-
- [self.scrollView addSubview:self.alertView];
- [self.alertView mas_makeConstraints:^(MASConstraintMaker *make) {
- make.top.equalTo(self.amountView.mas_bottom).offset(20);
- make.left.right.equalTo(self.scrollView);
- make.height.mas_equalTo(44);
- make.bottom.equalTo(self.scrollView).offset(-60);
- }];
- }
- - (void)addAllSubviews{
-
- [self addSubview:self.scrollView];
-
- [self.scrollView mas_makeConstraints:^(MASConstraintMaker *make) {
- make.edges.insets(UIEdgeInsetsMake(0, 0, 0, 0));
- }];
- }
- - (void)reloadContent{
- for (int i = 0; i < self.specItemArray.count; i++) {
- FKSelectSpecUnitView *unitView = [self.scrollView viewWithTag:kUnitViewTagBase + i];
- if ([unitView isKindOfClass:[FKSelectSpecUnitView class]]) [unitView reloadContent];
- }
- }
- - (NSUInteger)selectedAmount{
- return self.amountView.amountLabel.text.integerValue;
- }
- #pragma mark unitView delegate
- - (void)unitView:(FKSelectSpecUnitView *)unitView
- basicSpecIndex:(NSUInteger)basicSpecIndex
- selected:(BOOL)selected{
-
- NSString *selectPicUrl = unitView.specItem.selectedPicUrl;
- if (selectPicUrl){
- [self clearAllSpecPicUrl];
- unitView.specItem.selectedPicUrl = selectPicUrl;
- }
- if ([self.delegate respondsToSelector:@selector(didChangeSpecState:)]){
- [self.delegate didChangeSpecState:self];
- }
- }
- - (void)showSizePic{
- // 查看尺码表
- if ([self.delegate respondsToSelector:@selector(clickShowSizeBtn)]){
- [self.delegate clickShowSizeBtn];
- }
- }
- - (void)showSizeLink {
- if ([self.delegate respondsToSelector:@selector(clickShowSizeLinkBtn)]){
- [self.delegate clickShowSizeLinkBtn];
- }
- }
- - (void)clearAllSpecPicUrl{
- for (FKProductSpecItem *specItem in self.specItemArray) {
- specItem.selectedPicUrl = nil;
- }
- }
- - (FKProductSpecItem *)specItemAtIndex:(NSInteger)index{
- if (index >= 0 && index < self.specItemArray.count) {
- return self.specItemArray[index];
- }
- return nil;
- }
- #pragma mark - action
- #pragma mark - property
- - (UIScrollView *)scrollView{
- if (_scrollView == nil) {
- _scrollView = [[UIScrollView alloc]init];
- _scrollView.backgroundColor = [UIColor whiteColor];
- _scrollView.showsHorizontalScrollIndicator = NO;
- _scrollView.showsVerticalScrollIndicator = NO;
- _scrollView.bounces = NO;
- }
- return _scrollView;
- }
- - (FKSelectAlertView *)alertView{
- if (_alertView == nil) {
- _alertView = [[FKSelectAlertView alloc]init];
- }
- return _alertView;
- }
- - (FKSelectSpecAmountView *)amountView{
- if (_amountView == nil) {
- _amountView = [[FKSelectSpecAmountView alloc]init];
- }
- return _amountView;
- }
- @end
|