123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152153154155156157158159160161162163164165166167168169170171172173174175176177178179180181182183184185186187188189190191192193194195196197198199200201202203204205206207208209210211212213214215216217218219220221222223224225226227228229230231232233234235236237238239240241242243244245246247248249250251252253254255256257258259260261262263264265266267268269270271272273274275276277278279280281282283284285286287288289290291292293294295296297298299300301302303304305306307308309310311312313314315316317318319320321322323324325326327328329330331332333334335336337338339340341342343344345346347348349350351352353354355356357358359360361362363364365366367368369370371372373374 |
- //
- // FKBookGuideController.m
- // FirstLink
- //
- // Created by jack on 16/4/25.
- // Copyright © 2016年 FirstLink. All rights reserved.
- //
- #import "FKSexGuideController.h"
- #import "FKSexChoseBtn.h"
- #import "FKGuideManager.h"
- @interface FKSexGuideController ()
- @property (nonatomic, strong) UILabel *titleLabel;
- @property (nonatomic, strong) UILabel *indicatorLabel;
- @property (nonatomic, strong) UIView *middleLine;
- @property (nonatomic, strong) UIImageView *upImgView;
- @property (nonatomic, strong) UIImageView *downImgView;
- @property (nonatomic, strong) UIImageView *iconImgView;
- @property (nonatomic, strong) UIImageView *rightArrowImgView;
- @property (nonatomic, strong) UIButton *manBtn;
- @property (nonatomic, strong) UIButton *womanBtn;
- @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 FKSexGuideController
- - (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.edgesForExtendedLayout = UIRectEdgeAll;
-
- [self addAllSubviews];
- [self addPanGesture];
- [self configContent];
- }
- - (void)viewWillAppear:(BOOL)animated{
- [super viewWillAppear:animated];
-
- [self.navigationController setNavigationBarHidden:YES animated:YES];
-
- // if ([self.navigationController respondsToSelector:@selector(interactivePopGestureRecognizer)]) {
- // self.navigationController.interactivePopGestureRecognizer.delegate = self;
- // }
-
- self.navigationItem.leftBarButtonItem = [[UIBarButtonItem alloc]initWithCustomView:[UIView new]];
- }
- - (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.manBtn];
- [self.view addSubview:self.womanBtn];
- [self.view addSubview:self.cancelBtn];
-
- [self.view addSubview:self.pageControl];
-
- CGFloat manTopMargin = 45.0f;
- CGFloat womanTopMargin = 60.0f;
- CGFloat iconTop = 130.0f;
-
- if (UISCREENHEIGH <= 480){
- manTopMargin = 30;
- womanTopMargin = 30;
- iconTop = 80.0f;
- }else if (UISCREENHEIGH <= 568){
- manTopMargin = 40;
- womanTopMargin = 40;
- }
-
- [self.pageControl mas_makeConstraints:^(MASConstraintMaker *make) {
- make.centerX.equalTo(self.view);
- make.bottom.equalTo(self.view).offset(- 50);
- }];
-
- [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(- 25);
- }];
-
- [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.manBtn mas_makeConstraints:^(MASConstraintMaker *make) {
- make.top.equalTo(self.titleLabel.mas_bottom).offset(manTopMargin);
- make.centerX.equalTo(self.view);
- make.size.mas_offset(CGSizeMake(170, 40));
- }];
-
- [self.womanBtn mas_makeConstraints:^(MASConstraintMaker *make) {
- make.top.equalTo(self.manBtn.mas_bottom).offset(womanTopMargin);
- 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;
- //}
- - (void)configContent{
- if (self.infoItem){
- switch (self.infoItem.sexType) {
- case kSexTypeBoth:{
- self.manBtn.selected = YES;
- self.womanBtn.selected = YES;
- }
- break;
- case kSexTypeMan:{
- self.manBtn.selected = YES;
- self.womanBtn.selected = NO;
- }
- break;
- case kSexTypeWoman:{
- self.manBtn.selected = NO;
- self.womanBtn.selected = YES;
- }
- break;
-
- default:
- break;
- }
-
- if (self.manBtn.selected) self.manBtn.backgroundColor = UIColorFromRGB(0xff6362);
- if (self.womanBtn.selected) self.womanBtn.backgroundColor = UIColorFromRGB(0xff6362);
- [self resetPanGestureEnable];
- }
- }
- - (void)addPanGesture{
- self.panGesture = [[UIPanGestureRecognizer alloc]initWithTarget:self action:@selector(finishPanGesture:)];
- [self.view addGestureRecognizer:self.panGesture];
- self.panGesture.enabled = NO;
- }
- - (kSexType)getCurrentSexType{
- if (self.manBtn.selected && self.womanBtn.selected){
- return kSexTypeBoth;
- }else if (self.manBtn.selected){
- return kSexTypeMan;
- }else if (self.womanBtn.selected){
- return kSexTypeWoman;
- }
- return kSexTypeNone;
- }
- - (void)finishPanGesture:(UIPanGestureRecognizer *)gesture{
- if (gesture.state == UIGestureRecognizerStateRecognized){
- CGPoint vert = [gesture velocityInView:self.view];
- if (vert.x < - 40){
- kSexType sexType = [self getCurrentSexType];
- if (sexType == kSexTypeNone) return;
-
- FKAgeGuideController *age = [[FKAgeGuideController alloc]initWithInfoItem:self.infoItem
- finish:self.finishBlock
- cancel:self.cancelBlock];
- [self.navigationController pushViewController:age animated:YES];
- }
- }
- }
- - (void)resetPanGestureEnable{
- if ([self getCurrentSexType] == kSexTypeNone){
- 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)savePreferData{
- self.infoItem.sexType = [self getCurrentSexType];
- }
- #pragma mark - action
- - (void)clickSexBtn:(UIButton *)sender{
- sender.selected = !sender.selected;
- if (sender.selected){
- sender.backgroundColor = UIColorFromRGB(0xff6362);
- }else{
- sender.backgroundColor = UIColorFromRGB(0xe2e2e2);
- }
-
- [self savePreferData];
- [self resetPanGestureEnable];
- }
- - (void)clickCancelBtn{
- if (self.cancelBlock){
- self.cancelBlock();
- return;
- }
- [self.navigationController popToRootViewControllerAnimated:YES];
- }
- #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 = @"滑动确认到下一步";
- _indicatorLabel.hidden = YES;
- }
- return _indicatorLabel;
- }
- - (UIImageView *)rightArrowImgView{
- if (_rightArrowImgView == nil) {
- _rightArrowImgView = [[UIImageView alloc]initWithImage:[UIImage imageNamed:@"guide_right_arrow"]];
- _rightArrowImgView.hidden = YES;
- }
- return _rightArrowImgView;
- }
- - (UIImageView *)upImgView{
- if (_upImgView == nil) {
- _upImgView = [[UIImageView alloc]initWithImage:[UIImage imageNamed:@"guideWoman"]];
- }
- return _upImgView;
- }
- - (UIImageView *)downImgView{
- if (_downImgView == nil) {
- _downImgView = [[UIImageView alloc]initWithImage:[UIImage imageNamed:@"guideMan"]];
- }
- return _downImgView;
- }
- - (UIImageView *)iconImgView{
- if (_iconImgView == nil) {
- _iconImgView = [[UIImageView alloc]initWithImage:[UIImage imageNamed:@"people_guide_icon"]];
- }
- return _iconImgView;
- }
- - (UIButton *)manBtn{
- if (_manBtn == nil) {
- _manBtn = [UIButton buttonWithType:UIButtonTypeCustom];
- [_manBtn setTitle:@"男士" forState:UIControlStateNormal];
- [_manBtn setTitleColor:UIColorFromRGB(0x000000) forState:UIControlStateNormal];
- [_manBtn setTitleColor:UIColorFromRGB(0xffffff) forState:UIControlStateSelected];
- [_manBtn setBackgroundColor:UIColorFromRGB(0xe2e2e2)];
- [_manBtn addTarget:self action:@selector(clickSexBtn:) forControlEvents:UIControlEventTouchUpInside];
- _manBtn.titleLabel.font = [UIFont systemFontOfSize:16];
- _manBtn.layer.cornerRadius = 5;
- _manBtn.tag = kSexTypeMan;
- }
- return _manBtn;
- }
- - (UIButton *)womanBtn{
- if (_womanBtn == nil) {
- _womanBtn = [UIButton buttonWithType:UIButtonTypeCustom];
- [_womanBtn setTitle:@"女士" forState:UIControlStateNormal];
- [_womanBtn setTitleColor:UIColorFromRGB(0x000000) forState:UIControlStateNormal];
- [_womanBtn setTitleColor:UIColorFromRGB(0xffffff) forState:UIControlStateSelected];
- [_womanBtn setBackgroundColor:UIColorFromRGB(0xe2e2e2)];
- [_womanBtn addTarget:self action:@selector(clickSexBtn:) forControlEvents:UIControlEventTouchUpInside];
- _womanBtn.titleLabel.font = [UIFont systemFontOfSize:16];
- _womanBtn.layer.cornerRadius = 5;
- _womanBtn.tag = kSexTypeWoman;
- }
- return _womanBtn;
- }
- - (UIButton *)cancelBtn{
- if (_cancelBtn == nil) {
- _cancelBtn = [UIButton buttonWithType:UIButtonTypeCustom];
- [_cancelBtn setTitle:@"跳过" forState:UIControlStateNormal];
- [_cancelBtn setTitleColor:UIColorFromRGB(0xcccccc) forState:UIControlStateNormal];
- [_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;
- }
- - (UIView *)middleLine{
- if (_middleLine == nil) {
- _middleLine = [[UIView alloc]init];
- _middleLine.backgroundColor = UIColorFromRGB(0x7f7f7f);
- }
- return _middleLine;
- }
- - (UIPageControl *)pageControl{
- if (_pageControl == nil) {
- _pageControl = [[UIPageControl alloc]init];
- _pageControl.currentPageIndicatorTintColor = UIColorFromRGB(0x4a4a4a);
- _pageControl.pageIndicatorTintColor = UIColorFromRGB(0x9b9b9b);
- _pageControl.numberOfPages = 3;
- _pageControl.currentPage = 0;
- }
- return _pageControl;
- }
- - (FKPreferinfoItem *)infoItem{
- if (_infoItem == nil) {
- _infoItem = [[FKPreferinfoItem alloc]init];
- }
- return _infoItem;
- }
- @end
|