06-廣告界面

需求:在啟動的時候诗赌,一般會去先加載廣告界面续搀,需要一個自定義類去管理這個廣告界面

分析:
(1) 若使用系統(tǒng)本身的LaunchScreen.storyboard个榕,就無法使用自定義的類
(2) 廣告業(yè)務(wù)邏輯
(3) 占位視圖思想:有個控件不確定尺寸,但是層次結(jié)構(gòu)已經(jīng)確定,就可以使用占位視圖思想
(4) 屏幕適配.通過屏幕高度判斷

報錯: unacceptable content-type: text/html"
原因: 響應(yīng)頭問題,AFN發(fā)送網(wǎng)絡(luò)請求,返回的數(shù)據(jù)是 text/html類型扛拨,AFN不能夠接收
解決:manager.responseSerializer.acceptableContentTypes = [NSSet setWithObject:@"text/html"];

拓展:為什么使用static來修飾int
原因:因為這是全局的棧猫缭,只分配一次內(nèi)存葱弟,若不用static修飾,會每次調(diào)用的時候就分配一次內(nèi)存猜丹。

方案解析:設(shè)置窗口的根控制器為廣告控制器

(1)xib的描述(3層):

第一層:啟動圖片
第二層:占位圖片(UIView--->UIimageView)
第三層:Button(與占位圖平級)

(2)代碼如下:

pch里芝加,屏幕適配

/***********屏幕適配*************/
#define XMGScreenW [UIScreen mainScreen].bounds.size.width
#define XMGScreenH [UIScreen mainScreen].bounds.size.height
#define iphone6P (XMGScreenH == 736)
#define iphone6 (XMGScreenH == 667)
#define iphone5 (XMGScreenH == 568)
#define iphone4 (XMGScreenH == 480)

廣告界面控制器:

#import "XMGAdViewController.h"
#import <AFNetworking/AFNetworking.h>
#import "XMGADItem.h"
#import <MJExtension/MJExtension.h>
#import <UIImageView+WebCache.h>
#import "XMGTabBarController.h"

@interface XMGAdViewController ()
@property (weak, nonatomic) IBOutlet UIImageView *launchImageView;
@property (weak, nonatomic) IBOutlet UIView *adContainView;
@property (nonatomic, weak) UIImageView *adView;
@property (nonatomic, strong) XMGADItem *item;
@property (nonatomic, weak) NSTimer *timer;
@property (weak, nonatomic) IBOutlet UIButton *jumpBtn;
@end

@implementation XMGAdViewController

// 點擊跳轉(zhuǎn)做的事情
- (IBAction)clickJump:(id)sender {
    // 銷毀廣告界面,進入主框架界面
    XMGTabBarController *tabBarVc = [[XMGTabBarController alloc] init];
    [UIApplication sharedApplication].keyWindow.rootViewController = tabBarVc;
    
    // 干掉定時器
    [_timer invalidate];
}

// 懶加載(圖片,手勢)
- (UIImageView *)adView
{
    if (_adView == nil) {

        UIImageView *imageView = [[UIImageView alloc] init];  
        [self.adContainView addSubview:imageView];
        
        UITapGestureRecognizer *tap = [[UITapGestureRecognizer alloc] initWithTarget:self action:@selector(tap)];
        [imageView addGestureRecognizer:tap];
        
        imageView.userInteractionEnabled = YES;
        _adView = imageView;
    }
    return _adView;
}

// 點擊廣告界面調(diào)用(點擊廣告射窒,打開相應(yīng)的網(wǎng)頁)
- (void)tap
{
    // 跳轉(zhuǎn)到界面 => safari
    NSURL *url = [NSURL URLWithString:_item.ori_curl];
    UIApplication *app = [UIApplication sharedApplication];
    if ([app canOpenURL:url]) {
        [app openURL:url];
    }
}

- (void)viewDidLoad {
    [super viewDidLoad];

    // 設(shè)置啟動圖片
    [self setupLaunchImage];
 
    // 加載廣告數(shù)據(jù) => 拿到活時間 => 服務(wù)器 => 查看接口文檔 1.判斷接口對不對 2.解析數(shù)據(jù)(w_picurl,ori_curl:跳轉(zhuǎn)到廣告界面,w,h) => 請求數(shù)據(jù)(AFN)
    [self loadAdData];
    
    // 創(chuàng)建定時器
    _timer =  [NSTimer scheduledTimerWithTimeInterval:1 target:self selector:@selector(timeChange) userInfo:nil repeats:YES];
}

- (void)timeChange
{
    // 倒計時
    static int i = 3;
    if (i == 0) {   
        [self clickJump:nil];   
    }   
    i--;  
    // 設(shè)置跳轉(zhuǎn)按鈕文字
    [_jumpBtn setTitle:[NSString stringWithFormat:@"跳轉(zhuǎn) (%d)",i] forState:UIControlStateNormal];
}

#pragma mark - 加載廣告數(shù)據(jù)
- (void)loadAdData
{
    // 1.創(chuàng)建請求會話管理者
    AFHTTPSessionManager *mgr = [AFHTTPSessionManager manager];
    
    // 2.拼接參數(shù)
    NSMutableDictionary *parameters = [NSMutableDictionary dictionary];
    parameters[@"code2"] = code2;
    
    // 3.發(fā)送請求
    [mgr GET:@"http://mobads.baidu.com/cpro/ui/mads.php" parameters:parameters progress:nil success:^(NSURLSessionDataTask * _Nonnull task, NSDictionary * _Nullable responseObject) {

        [responseObject writeToFile:@"/Users/xiaomage/Desktop/課堂共享/11大神班上課資料/08-項目/0315/代碼/04-廣告/ad.plist" atomically:YES];
        // 請求數(shù)據(jù) -> 解析數(shù)據(jù)(寫成plist文件) -> 設(shè)計模型 -> 字典轉(zhuǎn)模型 -> 展示數(shù)據(jù)
        // 獲取字典
        NSDictionary *adDict = [responseObject[@"ad"] lastObject];  
        // 字典轉(zhuǎn)模型
        _item = [XMGADItem mj_objectWithKeyValues:adDict];
        
        // 創(chuàng)建UIImageView展示圖片 =>XMGScreenW:屏幕適配
        CGFloat h = XMGScreenW / _item.w * _item.h;
        self.adView.frame = CGRectMake(0, 0, XMGScreenW, h);
        // 加載廣告網(wǎng)頁
        [self.adView sd_setImageWithURL:[NSURL URLWithString:_item.w_picurl]];
        
    } failure:^(NSURLSessionDataTask * _Nullable task, NSError * _Nonnull error) {
        NSLog(@"%@",error);
    }];
}

// 設(shè)置啟動圖片
- (void)setupLaunchImage
{
    // 6p:LaunchImage-800-Portrait-736h@3x.png
    // 6:LaunchImage-800-667h@2x.png
    // 5:LaunchImage-568h@2x.png
    // 4s:LaunchImage@2x.png
    if (iphone6P) { // 6p
        self.launchImageView.image = [UIImage imageNamed:@"LaunchImage-800-Portrait-736h@3x"];
    } else if (iphone6) { // 6
        self.launchImageView.image = [UIImage imageNamed:@"LaunchImage-800-667h"];
    } else if (iphone5) { // 5
        self.launchImageView.image = [UIImage imageNamed:@"LaunchImage-568h"];      
    } else if (iphone4) { // 4
        self.launchImageView.image = [UIImage imageNamed:@"LaunchImage-700"];
    }
}
@end

最后編輯于
?著作權(quán)歸作者所有,轉(zhuǎn)載或內(nèi)容合作請聯(lián)系作者
  • 序言:七十年代末藏杖,一起剝皮案震驚了整個濱河市,隨后出現(xiàn)的幾起案子脉顿,更是在濱河造成了極大的恐慌蝌麸,老刑警劉巖,帶你破解...
    沈念sama閱讀 212,599評論 6 492
  • 序言:濱河連續(xù)發(fā)生了三起死亡事件艾疟,死亡現(xiàn)場離奇詭異来吩,居然都是意外死亡,警方通過查閱死者的電腦和手機蔽莱,發(fā)現(xiàn)死者居然都...
    沈念sama閱讀 90,629評論 3 385
  • 文/潘曉璐 我一進店門弟疆,熙熙樓的掌柜王于貴愁眉苦臉地迎上來,“玉大人盗冷,你說我怎么就攤上這事兽间。” “怎么了正塌?”我有些...
    開封第一講書人閱讀 158,084評論 0 348
  • 文/不壞的土叔 我叫張陵嘀略,是天一觀的道長。 經(jīng)常有香客問我乓诽,道長帜羊,這世上最難降的妖魔是什么? 我笑而不...
    開封第一講書人閱讀 56,708評論 1 284
  • 正文 為了忘掉前任鸠天,我火速辦了婚禮讼育,結(jié)果婚禮上,老公的妹妹穿的比我還像新娘稠集。我一直安慰自己奶段,他們只是感情好,可當(dāng)我...
    茶點故事閱讀 65,813評論 6 386
  • 文/花漫 我一把揭開白布剥纷。 她就那樣靜靜地躺著痹籍,像睡著了一般。 火紅的嫁衣襯著肌膚如雪晦鞋。 梳的紋絲不亂的頭發(fā)上蹲缠,一...
    開封第一講書人閱讀 50,021評論 1 291
  • 那天棺克,我揣著相機與錄音,去河邊找鬼线定。 笑死娜谊,一個胖子當(dāng)著我的面吹牛,可吹牛的內(nèi)容都是我干的斤讥。 我是一名探鬼主播纱皆,決...
    沈念sama閱讀 39,120評論 3 410
  • 文/蒼蘭香墨 我猛地睜開眼,長吁一口氣:“原來是場噩夢啊……” “哼芭商!你這毒婦竟也來了抹剩?” 一聲冷哼從身側(cè)響起,我...
    開封第一講書人閱讀 37,866評論 0 268
  • 序言:老撾萬榮一對情侶失蹤蓉坎,失蹤者是張志新(化名)和其女友劉穎澳眷,沒想到半個月后,有當(dāng)?shù)厝嗽跇淞掷锇l(fā)現(xiàn)了一具尸體蛉艾,經(jīng)...
    沈念sama閱讀 44,308評論 1 303
  • 正文 獨居荒郊野嶺守林人離奇死亡钳踊,尸身上長有42處帶血的膿包…… 初始之章·張勛 以下內(nèi)容為張勛視角 年9月15日...
    茶點故事閱讀 36,633評論 2 327
  • 正文 我和宋清朗相戀三年,在試婚紗的時候發(fā)現(xiàn)自己被綠了勿侯。 大學(xué)時的朋友給我發(fā)了我未婚夫和他白月光在一起吃飯的照片拓瞪。...
    茶點故事閱讀 38,768評論 1 341
  • 序言:一個原本活蹦亂跳的男人離奇死亡,死狀恐怖助琐,靈堂內(nèi)的尸體忽然破棺而出祭埂,到底是詐尸還是另有隱情,我是刑警寧澤兵钮,帶...
    沈念sama閱讀 34,461評論 4 333
  • 正文 年R本政府宣布蛆橡,位于F島的核電站,受9級特大地震影響掘譬,放射性物質(zhì)發(fā)生泄漏泰演。R本人自食惡果不足惜,卻給世界環(huán)境...
    茶點故事閱讀 40,094評論 3 317
  • 文/蒙蒙 一葱轩、第九天 我趴在偏房一處隱蔽的房頂上張望睦焕。 院中可真熱鬧,春花似錦靴拱、人聲如沸垃喊。這莊子的主人今日做“春日...
    開封第一講書人閱讀 30,850評論 0 21
  • 文/蒼蘭香墨 我抬頭看了看天上的太陽本谜。三九已至,卻和暖如春妇蛀,著一層夾襖步出監(jiān)牢的瞬間耕突,已是汗流浹背笤成。 一陣腳步聲響...
    開封第一講書人閱讀 32,082評論 1 267
  • 我被黑心中介騙來泰國打工评架, 沒想到剛下飛機就差點兒被人妖公主榨干…… 1. 我叫王不留眷茁,地道東北人。 一個月前我還...
    沈念sama閱讀 46,571評論 2 362
  • 正文 我出身青樓纵诞,卻偏偏與公主長得像上祈,于是被迫代替她去往敵國和親。 傳聞我的和親對象是個殘疾皇子浙芙,可洞房花燭夜當(dāng)晚...
    茶點故事閱讀 43,666評論 2 350

推薦閱讀更多精彩內(nèi)容