iOS启动页广告组件

引言:iOS项目中往往都会用到启动页广告,以下是多年前的一个项目中自定义的广告页

效果图

需求分析

  • App启动或者从后台进入前台时,首先展示一张从后台获取的图片作为开屏广告
  • 广告页3秒后自动移除
  • 广告页可以点击跳过
  • 广告页可以是全屏覆盖,也可以留出底部位置显示AppIcon

业务逻辑

  • 打开App时,系统先展示App的启动页,接着添加一张图片覆盖启动页
  • 图片需要从后台获取url后异步加载,因此这个过程期间需要先用一张和启动页一样的背景图片代替
  • 广告页图片url如果获取失败,则立即移除广告页
  • 检查广告页图片是否本地有缓存,如果有,则加载本地

使用方法

  • 下载项目源码ZYFADLaunch
  • DACircularProgress文件夹和ZYFADLaunch文件夹拖到你的项目中
  • 修改源码中ZYFADLaunchViewinit方法,将图片url替换为你的url
  • launchImageViewimage修改为你的启动页图片
  • 在APP启动方法中,实例化一个ZYFADLaunchView对象,设置广告页底部举例
      func application(_ application: UIApplication, didFinishLaunchingWithOptions launchOptions: [UIApplicationLaunchOptionsKey: Any]?) -> Bool {
          self.window = UIWindow(frame: UIScreen.main.bounds)
          self.window?.backgroundColor = .white
          let viewController = UIStoryboard(name: "Main", bundle: nil).instantiateViewController(withIdentifier: "ViewController") as! ViewController
          self.window?.rootViewController = viewController
          self.window?.makeKeyAndVisible()
          let adLaunchView = ZYFADLaunchView(isFirstLaunch: true, frame: UIScreen.main.bounds) {
              //提供广告页移除后的回调
              print("广告页显示结束")
          }
          //optional, default 0
          adLaunchView.bottomDistance = 200
          return true
      }