123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152153154155156157158159160161162163164165166167168169170171172173174175176177178179180181182183184185186187188189190191192193194195196197198199200201202203204205206207208209210211212213214215216217218219220221222223224225226227228229230231232233234235236237238239240241242243244245246247248249250251252253254255256257258259260261262263264265266267268269270271272273274275276277278279280281282283284285286287288289290291292293294295296297298299300301302303304305306307308309310311312313314315316317318319320321322323324325326327328329330331332333334335336337338339340341342343344345346347348349350351352353354355356357358359360361362363364365366367368369370371 |
- //
- // 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
|