热更新demo

bannerCell.m 5.2KB

    // // 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