123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152153154155156157158159160161162163164165166167168169170171172173174175176177178179180181182183184185186187188189190191192193194195196197198199200201202203204205206207208209210211212213214215216217218219220221222223224225226227228229230231232233234235236237238239240241242243244245246 |
- //
- // FKProBottomView.m
- // FirstLink
- //
- // Created by jack on 16/8/13.
- // Copyright © 2016年 FirstLink. All rights reserved.
- //
- #import "FKProBottomView.h"
- @interface FKProBottomView ()
- @property (nonatomic, strong) UIButton *goBuyBtn;
- @property (nonatomic, strong) UIButton *addBasketBtn;
- @property (nonatomic, strong) UIButton *collectBtn;
- @property (nonatomic, strong) UIButton *serveBtn;
- @property (nonatomic, copy) void(^actionBlock)(kProBottomAction actionType);
- @end
- @implementation FKProBottomView
- - (instancetype)initWithAction:(void(^)(kProBottomAction actionType))actionBlock{
- if (self = [super init]){
- [self addAllSubviews];
- self.actionBlock = actionBlock;
- }
- return self;
- }
- - (void)addAllSubviews{
-
- self.backgroundColor = [UIColor whiteColor];
- UIView *leftContainer = [[UIView alloc]init];
-
- UIView *topLine = [[UIView alloc]init];
- topLine.backgroundColor = UIColorFromRGB(0xcccccc);
-
- [self addSubview:leftContainer];
- [self addSubview:self.goBuyBtn];
- [self addSubview:self.addBasketBtn];
- [self addSubview:self.goToBasketBtn];
- [self addSubview:self.collectBtn];
- [self addSubview:self.serveBtn];
- [self addSubview:topLine];
-
- [self.goToBasketBtn addSubview:self.redPoint];
-
- CGFloat rightItemW = 100.0f;
- if (UISCREENWIDTH <= 320) {
- rightItemW = 80.0f;
- }
-
- CGFloat offsetY = 0;
- if (IS_IPHONE_X) {
- offsetY = -14;
- }
- [self.goBuyBtn mas_makeConstraints:^(MASConstraintMaker *make) {
- make.right.equalTo(self).offset(-10);
- make.centerY.equalTo(self).offset(offsetY);
- make.size.mas_equalTo(CGSizeMake(rightItemW, 40));
- }];
-
- [self.addBasketBtn mas_makeConstraints:^(MASConstraintMaker *make) {
- make.right.equalTo(self.goBuyBtn.mas_left).offset(- 10);
- make.centerY.equalTo(self.goBuyBtn);
- make.size.mas_equalTo(CGSizeMake(rightItemW, 40));
- }];
-
- [leftContainer mas_makeConstraints:^(MASConstraintMaker *make) {
- make.left.top.bottom.equalTo(self);
- make.right.equalTo(self.addBasketBtn.mas_left);
- }];
-
- [self.collectBtn mas_makeConstraints:^(MASConstraintMaker *make) {
- make.centerY.equalTo(self.goBuyBtn);
- make.height.equalTo(self);
- make.centerX.equalTo(leftContainer);
- }];
-
- [self.goToBasketBtn mas_makeConstraints:^(MASConstraintMaker *make) {
- make.left.equalTo(self.collectBtn.mas_right).offset(10);
- make.centerY.equalTo(self.goBuyBtn);
- make.height.equalTo(self);
- }];
-
- [self.serveBtn mas_makeConstraints:^(MASConstraintMaker *make) {
- make.right.equalTo(self.collectBtn.mas_left).offset(- 10);
- make.centerY.equalTo(self.goBuyBtn);
- make.height.equalTo(self);
- }];
-
- [topLine mas_makeConstraints:^(MASConstraintMaker *make) {
- make.left.right.top.equalTo(self);
- make.height.mas_equalTo(0.5);
- }];
-
- [self.redPoint mas_makeConstraints:^(MASConstraintMaker *make) {
- make.centerX.equalTo(self.goToBasketBtn).offset(8);
- make.centerY.equalTo(self.goToBasketBtn).offset(-10 + offsetY);
- make.width.height.mas_equalTo(5);
- }];
- }
- - (void)resetContentWithDataModel:(FKProductDetailItem *)dataModel specDataCenter:(FKProductSpecDataCenter *)dataCenter{
- if ([dataModel isKindOfClass:[FKProductDetailItem class]]) {
-
- self.collected = dataModel.currentUser.hasCollect;
-
- self.addBasketBtn.hidden = NO;
- self.goBuyBtn.hidden = NO;
- self.goBuyBtn.userInteractionEnabled = YES;
-
- [self.goBuyBtn setBackgroundColor:UIColorFromRGB(0xf85a5a)];
- [self.goBuyBtn setTitle:@"立即购买" forState:UIControlStateNormal];
-
- if (dataCenter && [dataCenter getTotalStock] <= 0){
- // 抢光
- self.goBuyBtn.userInteractionEnabled = NO;
- [self.goBuyBtn setBackgroundColor:UIColorFromRGB(0xcccccc)];
- [self.goBuyBtn setTitle:@"已抢光" forState:UIControlStateNormal];
- } else if (!dataModel.productInfo.productOnLine || ![dataModel.productInfo isProductValid]) {
- // 产品下线
- self.goBuyBtn.userInteractionEnabled = NO;
- [self.goBuyBtn setBackgroundColor:UIColorFromRGB(0xcccccc)];
-
- if ([dataModel.productInfo offLineStr]) {
- [self.goBuyBtn setTitle:[dataModel.productInfo offLineStr] forState:UIControlStateNormal];
- }
- } else if (dataModel.saleRule.isOnlyNew && dataModel.currentUser.hasEverBuy){
- // 新用户专享
- self.goBuyBtn.userInteractionEnabled = NO;
- [self.goBuyBtn setBackgroundColor:UIColorFromRGB(0xcccccc)];
- [self.goBuyBtn setTitle:@"新用户专享" forState:UIControlStateNormal];
- }
- }
- }
- - (void)setCollected:(BOOL)collected{
- _collected = collected;
- self.collectBtn.selected = collected;
- }
- - (void)clickActionBtn:(UIButton *)sender {
- if (sender.tag == kProBottomActionCollect) {
- self.collected = !self.collected;
- }
- if (self.actionBlock) {
- self.actionBlock(sender.tag);
- }
- }
- - (UIButton *)goBuyBtn{
- if (_goBuyBtn == nil) {
-
- UIFont *font = [UIFont systemFontOfSize:14];
- if (UISCREENWIDTH <= 320) {
- font = [UIFont systemFontOfSize:13];
- }
- _goBuyBtn = [UIButton buttonWithType:UIButtonTypeCustom];
- _goBuyBtn.titleLabel.font = font;
- _goBuyBtn.backgroundColor = UIColorFromRGB(0xff6362);
- _goBuyBtn.tag = kProBottomActionBuy;
- _goBuyBtn.hidden = YES;
- [_goBuyBtn setTitleColor:UIColorFromRGB(0xffffff) forState:UIControlStateNormal];
- [_goBuyBtn setTitle:@"立即购买" forState:UIControlStateNormal];
- [_goBuyBtn addTarget:self
- action:@selector(clickActionBtn:)
- forControlEvents:UIControlEventTouchUpInside];
- }
- return _goBuyBtn;
- }
- - (UIButton *)addBasketBtn{
- if (_addBasketBtn == nil) {
-
- UIFont *font = [UIFont systemFontOfSize:14];
- if (UISCREENWIDTH <= 320) {
- font = [UIFont systemFontOfSize:13];
- }
-
- _addBasketBtn = [UIButton buttonWithType:UIButtonTypeCustom];
- _addBasketBtn.titleLabel.font = font;
- _addBasketBtn.layer.borderWidth = 1.0f;
- _addBasketBtn.layer.borderColor = UIColorFromRGB(0xff6362).CGColor;
- _addBasketBtn.tag = kProBottomActionAddBasket;
- _addBasketBtn.hidden = YES;
- [_addBasketBtn setTitleColor:UIColorFromRGB(0xff6362) forState:UIControlStateNormal];
- [_addBasketBtn setTitle:@"加入购物车" forState:UIControlStateNormal];
- [_addBasketBtn addTarget:self
- action:@selector(clickActionBtn:)
- forControlEvents:UIControlEventTouchUpInside];
- }
- return _addBasketBtn;
- }
- - (UIButton *)goToBasketBtn{
- if (_goToBasketBtn == nil) {
- _goToBasketBtn = [UIButton buttonWithType:UIButtonTypeCustom];
- _goToBasketBtn.tag = kProBottomActionGoToBasket;
- [_goToBasketBtn setImage:[UIImage imageNamed:@"goToBasket"] forState:UIControlStateNormal];
- [_goToBasketBtn addTarget:self
- action:@selector(clickActionBtn:)
- forControlEvents:UIControlEventTouchUpInside];
- }
- return _goToBasketBtn;
- }
- - (UIButton *)collectBtn{
- if (_collectBtn == nil) {
- _collectBtn = [UIButton buttonWithType:UIButtonTypeCustom];
- _collectBtn.tag = kProBottomActionCollect;
- [_collectBtn setImage:[UIImage imageNamed:@"proCollect"] forState:UIControlStateNormal];
- [_collectBtn setImage:[UIImage imageNamed:@"proSelectedH"] forState:UIControlStateSelected];
- [_collectBtn addTarget:self
- action:@selector(clickActionBtn:)
- forControlEvents:UIControlEventTouchUpInside];
- }
- return _collectBtn;
- }
- - (UIButton *)serveBtn{
- if (_serveBtn == nil) {
- _serveBtn = [UIButton buttonWithType:UIButtonTypeCustom];
- _serveBtn.tag = kProBottomActionServer;
- [_serveBtn setImage:[UIImage imageNamed:@"goToServe"] forState:UIControlStateNormal];
- [_serveBtn addTarget:self
- action:@selector(clickActionBtn:)
- forControlEvents:UIControlEventTouchUpInside];
- }
- return _serveBtn;
- }
- - (UIView *)redPoint{
- if (_redPoint == nil) {
- _redPoint = [[UIView alloc]init];
- _redPoint.backgroundColor = UIColorFromRGB(0xff624a);
- _redPoint.layer.cornerRadius = 2.5f;
- _redPoint.hidden = YES;
- }
- return _redPoint;
- }
- @end
|