iOS啟動圖和開屏廣告圖,類似網易

發表於2016-09-09

啟動圖是在iOS開發過程中必不可少的一個部分,很多app在啟動圖之後會有一張自定義的開屏廣告圖,點選該廣告圖可以跳轉到廣告圖對應的頁面。今天呢,和大家分享一下如何新增這張廣告圖以及點選廣告圖的跳轉。這個廣告圖是通過將UIImageView新增到UIWindow上實現的。

一.新增本地啟動圖

1.準備好本地圖片
2.找到工程中的Images.xcassets檔案,開啟LaunchImage,將圖片拖到對應的地方,如下圖:

11972702-f247659169c59891

新增啟動圖

3.將LaunchScreen.storyboard檔案中右邊的Use as Launch Screen選項關閉(不要選擇此項)如圖:

12972702-01ce8effba53de81

關閉Use as Launch Screen選項

4.將Launch Images Source選擇為LaunchImage ,再將Launch Screen File置空。如圖:

13972702-6e34e3b251ef2f57

5.可在Appdelegate中設定啟動圖停留的時間
// 啟動頁停留1秒 [NSThread sleepForTimeInterval:1];
6.執行工程可看到設定的啟動圖(如果沒有,可將app先刪除,然後重新執行一次即可)

二.新增開屏廣告圖
這個廣告圖的實現是基於作者周煥強App啟動載入廣告頁面思路,然後自己增加了一些小補充。因為廣告是有時效性的,不是每次啟動的時候都會去顯示這個廣告頁面。所以這裡的原則是,後臺返回的資料中包括廣告圖片、廣告圖片對應的URL、以及該廣告的截止時間。執行程式時會請求廣告圖資料,將資料儲存到本地。再次執行時從本地中將儲存的圖片取出,同時判斷圖片的截止日期是否有效,若圖片存在且在有效期內,則將廣告圖顯示出來;再次請求廣告圖資料,以免有新的廣告資料。

1.建立自定義的SplashScreenView。我在將ImageView加到Window上時,遇到新增不成功的情況,後面列印window的時候發現,window的hidden屬性是YES,於是將其設為NO後就成功了。

2.實現顯示廣告頁的方法,這裡會根據儲存下來的廣告圖截止時間和是否有該圖片去顯示。比較日期的先後,可以先將當前日期和儲存下來的廣告圖轉換成相同的日期格式,將兩者進行比較,根據比較結果的 升序或降序來判斷日期的先後。

3.請求廣告資料。請求資料時,先判斷該圖片是否存在,如果不存在的話,先將舊的圖片刪除掉,然後去下載新的圖片。刪除就照片的時候需要注意,先去判斷儲存下來的圖片名字和本地沙盒中存在的圖片是否一致,如果不一致,說明圖片有更新,此時刪除沙盒中的舊圖片,如果一致,則不需要進行刪除操作,否則找不到已儲存的圖片

最後的效果如圖:

14972702-182bf3ec728102e9

啟動圖和開屏廣告圖.gif

demo地址

相關文章