// // nodeInfoView.m // ThePaperDemo // // Created by scar1900 on 14-9-23. // Copyright (c) 2014年 scar1900. All rights reserved. // #import "nodeInfoViewCell.h" #import "AsyncImageView.h" @interface nodeInfoViewCell() @property(nonatomic, strong)AsyncImageView *sponsorImageView; @property(nonatomic, strong)AsyncImageView *nodeImageView; @property(nonatomic, strong)UIButton *nodeButton; @property(nonatomic, strong)UIButton *orderButton; @property(nonatomic, strong)UIView *backView; @end @implementation nodeInfoViewCell @synthesize nodeInfoBO = _nodeInfoBO; @synthesize delegate; @synthesize indexPath; - (id)initWithStyle:(UITableViewCellStyle)style reuseIdentifier:(NSString *)reuseIdentifier { self = [super initWithStyle:style reuseIdentifier:reuseIdentifier]; if (self) { self.backgroundColor = [UIColor colorWithHexString:BackGroundColor]; self.selectionStyle = UITableViewCellSelectionStyleNone; [self addSubview:self.backView]; [self.backView addSubview:self.sponsorImageView]; [self.backView addSubview:self.nodeImageView]; [self.backView addSubview:self.nodeButton]; [self.backView addSubview:self.orderButton]; UITapGestureRecognizer *sponsorTap = [[UITapGestureRecognizer alloc]initWithTarget:self action:@selector(tapSponsor:)]; sponsorTap.numberOfTapsRequired = 1; [self.sponsorImageView addGestureRecognizer:sponsorTap]; } return self; } - (UIView*)backView { if (!_backView) { _backView = [[UIView alloc]initWithFrame:CGRectZero]; _backView.backgroundColor = [UIColor clearColor]; } return _backView; } - (AsyncImageView*)sponsorImageView { if (!_sponsorImageView) { _sponsorImageView = [[AsyncImageView alloc]initWithFrame:CGRectZero]; _sponsorImageView.isHaveWaterPrint = NO; _sponsorImageView.imageView.backgroundColor = [UIColor clearColor]; _sponsorImageView.backgroundColor = [UIColor clearColor]; } return _sponsorImageView; } - (AsyncImageView*)nodeImageView { if (!_nodeImageView) { _nodeImageView = [[AsyncImageView alloc]initWithFrame:CGRectZero]; _nodeImageView.isHaveWaterPrint = NO; _nodeImageView.imageView.backgroundColor = [UIColor clearColor]; _nodeImageView.backgroundColor = [UIColor clearColor]; if (ISNotRETINA) { _nodeImageView.isNeedCorner = YES; } } return _nodeImageView; } - (UIButton*)nodeButton { if (!_nodeButton) { _nodeButton = [UIButton buttonWithType:UIButtonTypeCustom]; [_nodeButton setTitleColor:[UIColor colorWithHexString:TextBlack] forState:UIControlStateNormal]; [_nodeButton setTitleColor:[UIColor colorWithHexString:LIGHTGRAY] forState:UIControlStateHighlighted]; _nodeButton.titleLabel.textAlignment = NSTextAlignmentCenter; _nodeButton.backgroundColor = [UIColor clearColor]; [_nodeButton addTarget:self action:@selector(pushToNodeList:) forControlEvents:UIControlEventTouchUpInside]; } _nodeButton.titleLabel.font = appFont(25, NO); return _nodeButton; } - (void)setNodeInfoBO:(nodeObjectBO *)data { _nodeInfoBO = data; if (data.sponsor) { sponsorBO *sponsor = setJsonDicToDataModel(data.sponsor, [sponsorBO class]); self.sponsorImageView.imageUrl = sponsor.logo; self.sponsorImageView.imageView.backgroundColor = [UIColor clearColor]; self.sponsorImageView.backgroundColor = [UIColor clearColor]; } self.nodeImageView.imageUrl = data.pic; [self.nodeButton setTitle:data.name forState:UIControlStateNormal]; if ([data.isOrder intValue] == 1 && [TPUserDefault instance].userBO) { self.orderButton.selected = YES; self.orderButton.backgroundColor = [UIColor colorWithHexString:BLUECOLOR]; [_orderButton setImage:Image(@"detailPage/orderedIcon.png") forState:UIControlStateNormal]; [_orderButton setBackgroundImage:imageWithUIColor([UIColor colorWithHexString:BLUECOLOR]) forState:UIControlStateNormal]; [_orderButton setTitle:@"已订阅" forState:UIControlStateNormal]; }else { self.orderButton.selected = NO; self.orderButton.backgroundColor = [UIColor colorWithHexString:LIGHTGRAY]; [_orderButton setImage:Image(@"detailPage/addPic.png") forState:UIControlStateNormal]; [_orderButton setBackgroundImage:imageWithUIColor([UIColor colorWithHexString:LIGHTGRAY]) forState:UIControlStateNormal]; [_orderButton setTitle:@"订阅" forState:UIControlStateNormal]; } } - (UIButton*)orderButton { if (!_orderButton) { _orderButton = [UIButton buttonWithType:UIButtonTypeCustom]; _orderButton.layer.cornerRadius = 3; [_orderButton addTarget:self action:@selector(orderHandler:) forControlEvents:UIControlEventTouchUpInside]; [_orderButton setImage:Image(@"detailPage/addPic.png") forState:UIControlStateNormal]; [_orderButton setBackgroundImage:imageWithUIColor([UIColor colorWithHexString:LIGHTGRAY]) forState:UIControlStateNormal]; [_orderButton setTitle:@"订阅" forState:UIControlStateNormal]; _orderButton.titleLabel.textAlignment = NSTextAlignmentLeft; _orderButton.titleLabel.textColor = [UIColor whiteColor]; _orderButton.clipsToBounds = YES; } _orderButton.titleLabel.font = appFont(25/2, NO); return _orderButton; } - (void)tapSponsor:(id)sender { if ([self.delegate respondsToSelector:@selector(clickSponsor:)]) { sponsorBO *sponsor = setJsonDicToDataModel(self.nodeInfoBO.sponsor, [sponsorBO class]); [self.delegate clickSponsor:sponsor.link]; } } - (void)orderHandler:(UIButton*)btn { if ([self.delegate respondsToSelector:@selector(clickOrder:isOrder:orderBtn:indexPath:)]) { [self.delegate clickOrder:self.nodeInfoBO.nodeId isOrder:!btn.selected orderBtn:btn indexPath:self.indexPath]; } } - (void)layoutSubviews { [super layoutSubviews]; CGFloat padding = 0; UIInterfaceOrientation orientation = [[UIApplication sharedApplication] statusBarOrientation]; if (orientation == UIInterfaceOrientationLandscapeLeft || orientation == UIInterfaceOrientationLandscapeRight) { padding = 125; } if (self.nodeInfoBO.sponsor) { self.backView.frame = CGRectMake(CGRectGetWidth(self.bounds)/2-680/4, CGRectGetHeight(self.bounds)/2-20, 680/2, 40); self.sponsorImageView.frame = CGRectMake(0, CGRectGetHeight(self.backView.bounds)/2-25/2, 100, 25); }else { self.backView.frame = CGRectMake(CGRectGetWidth(self.bounds)/2-460/4, CGRectGetHeight(self.bounds)/2-20, 460/2, 40); self.sponsorImageView.frame = CGRectZero; } self.nodeImageView.frame = CGRectMake(CGRectGetMaxX(self.sponsorImageView.frame)+10, CGRectGetHeight(self.backView.bounds)/2-25/2, 25, 25); CGFloat nodeButtonWidth = widthForString(self.nodeInfoBO.name, self.nodeButton.titleLabel.font, 25, NSLineBreakByWordWrapping); self.nodeButton.frame =CGRectMake(CGRectGetMaxX(self.nodeImageView.frame)+10, CGRectGetHeight(self.backView.bounds)/2-20, nodeButtonWidth, 40); self.orderButton.frame = CGRectMake(CGRectGetMaxX(self.nodeButton.frame)+10, CGRectGetHeight(self.backView.bounds)/2-25/2, 70, 25); if (self.orderButton.selected) { self.orderButton.imageEdgeInsets = UIEdgeInsetsMake(5, 5, 5, 70-5-28/2); }else { self.orderButton.imageEdgeInsets = UIEdgeInsetsMake(5, 5, 5, 70-5-15/2); } [self.orderButton setTitleEdgeInsets:UIEdgeInsetsMake(0, 5, 0, 0)]; } - (void)pushToNodeList:(UIButton*)btn { if ([self.delegate respondsToSelector:@selector(goToNodeListPage:)]) { [self.delegate goToNodeListPage:self.nodeInfoBO]; } } @end