|
//
// 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()<RemoteDelegate>
@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
|