|
//
// bannerCell.m
// ThePaperHD
//
// Created by scar1900 on 15/1/26.
// Copyright (c) 2015年 scar1900. All rights reserved.
//
#import "bannerCell.h"
@interface bannerCell()
{
NSInteger isSuccess;
CGFloat contentPadding;
}
@property(nonatomic, strong)NSString *clickUrl;
@end
@implementation bannerCell
@synthesize adUrl = _adUrl;
@synthesize delegate;
@synthesize clickUrl;
@synthesize indexPath;
@synthesize imageScale;
- (id)initWithStyle:(UITableViewCellStyle)style reuseIdentifier:(NSString *)reuseIdentifier {
self = [super initWithStyle:style reuseIdentifier:reuseIdentifier];
if (self) {
if (IS_IPHONE_6P) {
contentPadding = 15;
}else if (IS_IPHONE_6) {
contentPadding = 15;
}else {
contentPadding = 10;
}
self.backgroundColor = [UIColor colorWithHexString:BackGroundColor];
self.selectionStyle = UITableViewCellSelectionStyleNone;
[self.contentView addSubview:self.bannerView];
self.isHeadCell = NO;
self.tap = [[UITapGestureRecognizer alloc]initWithTarget:self action:@selector(tap:)];
[self.bannerView addGestureRecognizer:self.tap];
isSuccess = -1;
[[NSNotificationCenter defaultCenter] addObserver:self selector:@selector(needrefreshNightMode:) name:REFRESHAFTERNIGHTMODE object:nil];
}
return self;
}
- (void)needrefreshNightMode:(id)sender{
self.backgroundColor = [UIColor colorWithHexString:BackGroundColor];
}
- (void)dealloc {
[[NSNotificationCenter defaultCenter] removeObserver:self];
}
- (void)disableAdTap {
self.tap.enabled = NO;
}
- (void)setAdUrl:(NSString *)url {
_adUrl = url;
if (isBlankString(url)) {
[self.bannerView setHidden:YES];
if ([self.delegate respondsToSelector:@selector(loadAdFailed:isHeadCell:)]) {
[self.delegate loadAdFailed:self.indexPath isHeadCell:self.isHeadCell];
}
return;
}
TPLOG(@"%@",url);
__weak typeof(self) weakSelf = self;
[Remote doXmlRequestWithBlock:url completion:^(BOOL success, NSString *message, id responseData) {
if (success) {
isSuccess = 1;
[self.bannerView setHidden:NO];
TPLOG(@"=======ad data is ready!=========%@",weakSelf.description);
if ([weakSelf.delegate respondsToSelector:@selector(loadAdSuccess:isHeadCell:)]) {
[weakSelf.delegate loadAdSuccess:indexPath isHeadCell:weakSelf.isHeadCell];
}
NSString *imageUrl = responseData[@"creative"];
NSString *imageID = getImageNameFromURL(imageUrl);
weakSelf.bannerView.imageUrl = imageUrl;
weakSelf.bannerView.imageId = imageID;
NSString *click = responseData[@"click"];
if ([click isMatchedByRegex:@"__IDFA__"]) {
[click stringByReplacingOccurrencesOfString:@"__IDFA__" withString:[TPUserDefault instance].IDFA];
}
weakSelf.clickUrl = click;
NSString *impressionUrl = responseData[@"Impression"];
if (!isBlankString(impressionUrl)) {
if ([impressionUrl isMatchedByRegex:@"__IDFA__"]) {
[impressionUrl stringByReplacingOccurrencesOfString:@"__IDFA__" withString:[TPUserDefault instance].IDFA];
}
[Remote doSimpleAction:0 requestUrl:impressionUrl];
}
}else {
isSuccess = 0;
[self.bannerView setHidden:YES];
TPLOG(@"========load AD failed!========%@",weakSelf.description);
if ([weakSelf.delegate respondsToSelector:@selector(loadAdFailed:isHeadCell:)]) {
[weakSelf.delegate loadAdFailed:indexPath isHeadCell:weakSelf.isHeadCell];
}
}
}];
}
- (UIView*)bannerView {
if (!_bannerView) {
_bannerView = [AsyncImageView new];
_bannerView.imageView.userInteractionEnabled = YES;
_bannerView.isHaveWaterPrint = YES;
/**
* bug:5567( 广告:硬广告,出现前显示的是灰底)
*/
_bannerView.backgroundColor = [UIColor clearColor];
_bannerView.hidden = YES;
}
return _bannerView;
}
- (void)tap:(UITapGestureRecognizer*)gesture {
remotePushBO *pushBO = remotePushBO.new;
pushBO.linkType = @"6";
pushBO.contId = self.clickUrl;
pushBO.isComeFromRemote = @"0";
if ([self.delegate respondsToSelector:@selector(clickAdd:indexPath:)]) {
[self.delegate clickAdd:pushBO indexPath:self.indexPath];
}
}
- (void)layoutSubviews {
__weak typeof(self) weakSelf = self;
CGFloat imageHeight = (rect_screen.size.width-2*contentPadding)*imageScale;
[self.bannerView remakeConstraints:^(MASConstraintMaker *make) {
make.left.equalTo(weakSelf.contentView.left).equalTo(contentPadding);
make.right.equalTo(weakSelf.contentView.right).equalTo(-contentPadding);
make.top.equalTo(weakSelf.contentView.top);
make.height.mas_equalTo(imageHeight);
}];
}
- (void)awakeFromNib {
// Initialization code
}
- (void)setSelected:(BOOL)selected animated:(BOOL)animated {
[super setSelected:selected animated:animated];
// Configure the view for the selected state
}
@end
|