// // FKTypeGuideController.m // FirstLink // // Created by jack on 16/4/26. // Copyright © 2016年 FirstLink. All rights reserved. // #import "FKAgeGuideController.h" #import "FKCategoryGuideController.h" #import "FKGuideReform.h" #import "FKGuideRequest.h" #import "FKGuideTypeItem.h" #import "FKGuideManager.h" static NSString *FK_TYPE_COLLECTION_CELL_IDENTIFY = @"FK_TYPE_COLLECTION_CELL_IDENTIFY"; #define FK_TYPE_LIST_REQ 666 @interface FKAgeGuideController () @property (nonatomic, assign) kSexType sexType; @property (nonatomic, strong) UILabel *titleLabel; @property (nonatomic, strong) UILabel *indicatorLabel; @property (nonatomic, strong) UIImageView *iconImgView; @property (nonatomic, strong) UIImageView *rightArrowImgView; @property (nonatomic, strong) UIButton *sevenBtn; @property (nonatomic, strong) UIButton *eightBtn; @property (nonatomic, strong) UIButton *nineBtn; @property (nonatomic, strong) UIButton *cancelBtn; @property (nonatomic, strong) UIPageControl *pageControl; @property (nonatomic, strong) UIPanGestureRecognizer *panGesture; @property (nonatomic, strong) FKPreferinfoItem *infoItem; @property (nonatomic, copy) preferFinish finishBlock; @property (nonatomic, copy) preferCancel cancelBlock; @end @implementation FKAgeGuideController - (instancetype)initWithInfoItem:(FKPreferinfoItem *)infoItem finish:(preferFinish)finish cancel:(preferCancel)cancel{ if (self = [super init]) { self.infoItem = infoItem; self.finishBlock = finish; self.cancelBlock = cancel; } return self; } - (void)viewDidLoad{ [super viewDidLoad]; self.view.backgroundColor = UIColorFromRGB(0xf4f4f4); [self addAllSubviews]; [self addPanGesture]; [self configContent]; [self resetPanGestureEnable]; } - (void)viewWillAppear:(BOOL)animated{ [super viewWillAppear:animated]; // if ([self.navigationController respondsToSelector:@selector(interactivePopGestureRecognizer)]) { // self.navigationController.interactivePopGestureRecognizer.delegate = self; // } } - (void)addAllSubviews{ [self.view addSubview:self.iconImgView]; [self.view addSubview:self.rightArrowImgView]; [self.view addSubview:self.titleLabel]; [self.view addSubview:self.indicatorLabel]; [self.view addSubview:self.sevenBtn]; [self.view addSubview:self.eightBtn]; [self.view addSubview:self.nineBtn]; [self.view addSubview:self.cancelBtn]; [self.view addSubview:self.pageControl]; CGFloat commonMagin = 50.0f; CGFloat iconTop = 130.0f; CGFloat pageBottom = 50; CGFloat indicatorBottom = 25; if (UISCREENHEIGH <= 480){ commonMagin = 20; iconTop = 90; pageBottom = 20; indicatorBottom = 15; }else if (UISCREENHEIGH <= 568){ commonMagin = 30; iconTop = 110; pageBottom = 30; } [self.pageControl mas_makeConstraints:^(MASConstraintMaker *make) { make.centerX.equalTo(self.view); make.bottom.equalTo(self.view).offset(- pageBottom); }]; [self.iconImgView mas_makeConstraints:^(MASConstraintMaker *make) { make.top.equalTo(self.view).offset(iconTop); make.centerX.equalTo(self.view); }]; [self.indicatorLabel mas_makeConstraints:^(MASConstraintMaker *make) { make.centerX.equalTo(self.view).offset(10); make.bottom.equalTo(self.pageControl.mas_top).offset(- indicatorBottom); }]; [self.rightArrowImgView mas_makeConstraints:^(MASConstraintMaker *make) { make.right.equalTo(self.indicatorLabel.mas_left).offset(- 3); make.centerY.equalTo(self.indicatorLabel); }]; [self.titleLabel mas_makeConstraints:^(MASConstraintMaker *make) { make.top.equalTo(self.iconImgView.mas_bottom).offset(18); make.centerX.equalTo(self.view); }]; [self.sevenBtn mas_makeConstraints:^(MASConstraintMaker *make) { make.top.equalTo(self.titleLabel.mas_bottom).offset(commonMagin); make.centerX.equalTo(self.view); make.size.mas_offset(CGSizeMake(170, 40)); }]; [self.eightBtn mas_makeConstraints:^(MASConstraintMaker *make) { make.top.equalTo(self.sevenBtn.mas_bottom).offset(commonMagin); make.centerX.equalTo(self.view); make.size.mas_offset(CGSizeMake(170, 40)); }]; [self.nineBtn mas_makeConstraints:^(MASConstraintMaker *make) { make.top.equalTo(self.eightBtn.mas_bottom).offset(commonMagin); make.centerX.equalTo(self.view); make.size.mas_offset(CGSizeMake(170, 40)); }]; [self.cancelBtn mas_makeConstraints:^(MASConstraintMaker *make) { make.top.equalTo(self.view).offset(IS_IPHONE_X ? 54 : 40); make.right.equalTo(self.view).offset(- 20); make.size.mas_equalTo(CGSizeMake(49, 25.5)); }]; } //- (BOOL)gestureRecognizerShouldBegin:(UIGestureRecognizer *)gestureRecognizer{ // return NO; //} #pragma mark - method - (void)configContent{ if (self.infoItem) { switch (self.infoItem.ageType) { case kAgeTypeSeven: self.sevenBtn.selected = YES; break; case kAgeTypeEight: self.eightBtn.selected = YES; break; case kAgeTypeNine: self.nineBtn.selected = YES; break; default: break; } if (self.sevenBtn.selected) self.sevenBtn.backgroundColor = UIColorFromRGB(0xff6362); if (self.eightBtn.selected) self.eightBtn.backgroundColor = UIColorFromRGB(0xff6362); if (self.nineBtn.selected) self.nineBtn.backgroundColor = UIColorFromRGB(0xff6362); } } - (void)addPanGesture{ self.panGesture = [[UIPanGestureRecognizer alloc]initWithTarget:self action:@selector(finishPanGesture:)]; [self.view addGestureRecognizer:self.panGesture]; self.panGesture.enabled = NO; } - (void)finishPanGesture:(UIPanGestureRecognizer *)gesture{ if (gesture.state == UIGestureRecognizerStateRecognized){ CGPoint vert = [gesture velocityInView:self.view]; if (vert.x < - 40){ FKCategoryGuideController *category = [[FKCategoryGuideController alloc]initWithInfoItem:self.infoItem finish:self.finishBlock]; [self.navigationController pushViewController:category animated:YES]; } } } - (kAgeType)getCurrentAgeType{ if (self.sevenBtn.selected) return kAgeTypeSeven; if (self.eightBtn.selected) return kAgeTypeEight; if (self.nineBtn.selected) return kAgeTypeNine; return kAgeTypeNone; } - (void)savePreferData{ self.infoItem.ageType = [self getCurrentAgeType]; } - (void)resetPanGestureEnable{ if ([self getCurrentAgeType] == kAgeTypeNone){ self.panGesture.enabled = NO; self.indicatorLabel.hidden = YES; self.rightArrowImgView.hidden = YES; }else{ self.panGesture.enabled = YES; self.indicatorLabel.hidden = NO; self.rightArrowImgView.hidden = NO; } } - (void)clearAllSelected{ self.sevenBtn.selected = NO; self.eightBtn.selected = NO; self.nineBtn.selected = NO; self.sevenBtn.backgroundColor = UIColorFromRGB(0xe2e2e2); self.eightBtn.backgroundColor = UIColorFromRGB(0xe2e2e2); self.nineBtn.backgroundColor = UIColorFromRGB(0xe2e2e2); } #pragma mark - action - (void)clickCancelBtn{ if (self.cancelBlock){ self.cancelBlock(); return; } [self.navigationController popToRootViewControllerAnimated:YES]; } - (void)clickAgeBtn:(UIButton *)sender{ BOOL resSelect = !sender.selected; [self clearAllSelected]; sender.selected = resSelect; if (sender.selected){ sender.backgroundColor = UIColorFromRGB(0xff6362); }else{ sender.backgroundColor = UIColorFromRGB(0xe2e2e2); } [self savePreferData]; [self resetPanGestureEnable]; } #pragma mark - property - (UILabel *)titleLabel{ if (_titleLabel == nil) { _titleLabel = [[UILabel alloc]init]; _titleLabel.text = @"为了您更好的购物体验\n请选择您的身份标签"; _titleLabel.textAlignment = NSTextAlignmentCenter; _titleLabel.font = [UIFont systemFontOfSize:15]; _titleLabel.textColor = UIColorFromRGB(0x9c9c9c); _titleLabel.numberOfLines = 0; } return _titleLabel; } - (UILabel *)indicatorLabel{ if (_indicatorLabel == nil) { _indicatorLabel = [[UILabel alloc]init]; _indicatorLabel.font = [UIFont systemFontOfSize:15]; _indicatorLabel.textColor = UIColorFromRGB(0x9c9c9c); _indicatorLabel.text = @"滑动确认到下一步"; } return _indicatorLabel; } - (UIImageView *)rightArrowImgView{ if (_rightArrowImgView == nil) { _rightArrowImgView = [[UIImageView alloc]initWithImage:[UIImage imageNamed:@"guide_right_arrow"]]; } return _rightArrowImgView; } - (UIImageView *)iconImgView{ if (_iconImgView == nil) { _iconImgView = [[UIImageView alloc]initWithImage:[UIImage imageNamed:@"people_guide_icon"]]; } return _iconImgView; } - (UIButton *)sevenBtn{ if (_sevenBtn == nil) { _sevenBtn = [UIButton buttonWithType:UIButtonTypeCustom]; [_sevenBtn setTitle:@"70后" forState:UIControlStateNormal]; [_sevenBtn setTitleColor:UIColorFromRGB(0x000000) forState:UIControlStateNormal]; [_sevenBtn setTitleColor:UIColorFromRGB(0xffffff) forState:UIControlStateSelected]; [_sevenBtn setBackgroundColor:UIColorFromRGB(0xe2e2e2)]; [_sevenBtn addTarget:self action:@selector(clickAgeBtn:) forControlEvents:UIControlEventTouchUpInside]; _sevenBtn.titleLabel.font = [UIFont systemFontOfSize:16]; _sevenBtn.layer.cornerRadius = 5; _sevenBtn.tag = kAgeTypeSeven; } return _sevenBtn; } - (UIButton *)eightBtn{ if (_eightBtn == nil) { _eightBtn = [UIButton buttonWithType:UIButtonTypeCustom]; [_eightBtn setTitle:@"80后" forState:UIControlStateNormal]; [_eightBtn setTitleColor:UIColorFromRGB(0x000000) forState:UIControlStateNormal]; [_eightBtn setTitleColor:UIColorFromRGB(0xffffff) forState:UIControlStateSelected]; [_eightBtn setBackgroundColor:UIColorFromRGB(0xe2e2e2)]; [_eightBtn addTarget:self action:@selector(clickAgeBtn:) forControlEvents:UIControlEventTouchUpInside]; _eightBtn.titleLabel.font = [UIFont systemFontOfSize:16]; _eightBtn.layer.cornerRadius = 5; _eightBtn.tag = kAgeTypeEight; } return _eightBtn; } - (UIButton *)nineBtn{ if (_nineBtn == nil) { _nineBtn = [UIButton buttonWithType:UIButtonTypeCustom]; [_nineBtn setTitle:@"90后" forState:UIControlStateNormal]; [_nineBtn setTitleColor:UIColorFromRGB(0x000000) forState:UIControlStateNormal]; [_nineBtn setTitleColor:UIColorFromRGB(0xffffff) forState:UIControlStateSelected]; [_nineBtn setBackgroundColor:UIColorFromRGB(0xe2e2e2)]; [_nineBtn addTarget:self action:@selector(clickAgeBtn:) forControlEvents:UIControlEventTouchUpInside]; _nineBtn.titleLabel.font = [UIFont systemFontOfSize:16]; _nineBtn.layer.cornerRadius = 5; _nineBtn.tag = kAgeTypeNine; } return _nineBtn; } - (UIButton *)cancelBtn{ if (_cancelBtn == nil) { _cancelBtn = [UIButton buttonWithType:UIButtonTypeCustom]; [_cancelBtn setTitle:@"跳过" forState:UIControlStateNormal]; [_cancelBtn setTitleColor:UIColorFromRGB(0xcccccc) forState:UIControlStateNormal]; [_cancelBtn setTitleColor:UIColorFromRGB(0xffffff) forState:UIControlStateSelected]; [_cancelBtn addTarget:self action:@selector(clickCancelBtn) forControlEvents:UIControlEventTouchUpInside]; _cancelBtn.titleLabel.font = [UIFont systemFontOfSize:14]; _cancelBtn.layer.cornerRadius = 5.0f; _cancelBtn.layer.borderColor = UIColorFromRGB(0xcccccc).CGColor; _cancelBtn.layer.borderWidth = 0.5; } return _cancelBtn; } - (UIPageControl *)pageControl{ if (_pageControl == nil) { _pageControl = [[UIPageControl alloc]init]; _pageControl.currentPageIndicatorTintColor = UIColorFromRGB(0x4a4a4a); _pageControl.pageIndicatorTintColor = UIColorFromRGB(0x9b9b9b); _pageControl.numberOfPages = 3; _pageControl.currentPage = 1; } return _pageControl; } @end