1234567891011121314151617181920212223242526272829303132333435363738394041424344454647484950515253545556575859606162636465666768697071727374757677 |
- //
- // O2DemoAlertView.swift
- // O2Platform
- //
- // Created by FancyLou on 2019/1/22.
- // Copyright © 2019 zoneland. All rights reserved.
- //
- import UIKit
- import CocoaLumberjack
- class O2DemoAlertView: UIView {
-
- let backFrame = CGRect.init(x: 0, y: 0, width: SCREEN_WIDTH, height: SCREEN_HEIGHT)
- let backColor = UIColor(r: 0, g: 0, b: 0, a: 0.6)
- var boardView = UIView()
- var closeBtn = UIButton.init(type: UIButton.ButtonType.custom)
-
-
- func initView() -> UIView {
- self.frame = backFrame
- self.isHidden = true
- self.backgroundColor = backColor
- return self
- }
-
- private func addBoardView() {
- // 公告内容放到屏幕外面
- let x = (SCREEN_WIDTH - 315 ) / 2
- self.boardView.frame = CGRect.init(x: x, y: -(SCREEN_HEIGHT), width: 315, height: 485)
- self.boardView.backgroundColor = UIColor.clear
- let boardBackImage = UIImageView.init(frame: CGRect.init(x: 0, y: 0, width: 315, height: 485))
- boardBackImage.layer.masksToBounds = true
- boardBackImage.contentMode = UIView.ContentMode.scaleAspectFill
- boardBackImage.image = UIImage(named: "pic_czsm")
- self.boardView.addSubview(boardBackImage)//添加公告
- let closeX = CGFloat(315 - 5 - 22)
- self.closeBtn.frame = CGRect.init(x: closeX, y: 5, width: 22, height: 22) // 关闭按钮在公告的右上角 right:5 top:5
- self.closeBtn.setImage(UIImage(named: "icon_off_white2"), for: UIControl.State.normal)
- self.closeBtn.addTarget(self, action: #selector(closeAlertView), for: UIControl.Event.touchUpInside)
- self.boardView.addSubview(self.closeBtn)
- self.closeBtn.isHidden = true //关闭按钮隐藏
- }
-
- func showFallDown() {
- UIApplication.shared.keyWindow?.addSubview(initView())
- self.isHidden = false //显示背景
- addBoardView() //添加公告
- self.addSubview(self.boardView)
- //执行动画 从上往下掉落 回弹一下
- let firstY = SCREEN_HEIGHT - 485
- let secondY = CGFloat(0.0)
- let lastY = (SCREEN_HEIGHT - 485) / 2
- UIView.animate(withDuration: 0.5, animations: {
- self.boardView.frame.origin.y = firstY
- }) { (_) in
- UIView.animate(withDuration: 0.2, animations: {
- self.boardView.frame.origin.y = secondY
- }, completion: { (_) in
- UIView.animate(withDuration: 0.2, animations: {
- self.boardView.frame.origin.y = lastY
- }, completion: { (_) in
- self.closeBtn.isHidden = false
- })
- })
- }
-
- }
- @objc func closeAlertView() {
- self.closeBtn.isHidden = true
- UIView.animate(withDuration: 0.5, animations: {
- self.boardView.frame.origin.y = -(SCREEN_HEIGHT)
- }) { (_) in
- self.removeFromSuperview()
- }
- }
- }
|