Swift 实现页面的淡入淡出效果

2021-07-21 17:13:11 浏览数 (1)

实现页面淡入淡出效果,实现思路:

  1. 创建 testView 页面,frame 和页面大小一样大
  2. 设置背景颜色
  3. 设置 tag 用于定位 view
  4. 设置透明度为 0
  5. 创建当前页面点击手势
  6. 创建淡出页面的点击手势

源码如下:

代码语言:javascript复制
override func viewDidLoad() {
        super.viewDidLoad()
        
        let testView = UIView(frame: self.view.frame)
        testView.backgroundColor = .blue
        testView.tag = 1000
        self.view.addSubview(testView)
        testView.alpha = 0.0
        
        // 创建当前页面点击手势
        let tap = UITapGestureRecognizer(target: self, action: #selector(test))
        self.view.addGestureRecognizer(tap)
        
        // 创建淡出页面的点击手势
        let tap2 = UITapGestureRecognizer(target: self, action: #selector(test2))
        testView.addGestureRecognizer(tap2)
}

实现手势方法,在 test 方法中实现 animate设置持续时间 0.5 秒,在 animations 通过 tag 定位出现的 view 设置透明度为 1。使用 self.view.layoutIfNeeded() 立即更新视图。

test2 方法中需要实现隐藏页面的功能,需要定位到 view 并将透明度设置为 0。然后立即更新视图。

源码如下:

代码语言:javascript复制
@objc func test() {
    // 改变透明度
    UIView.animate(withDuration: 0.5, animations: {
        let view = self.view.viewWithTag(1000)
        view?.alpha = 1.0
        self.view.layoutIfNeeded()
    })
}

@objc func test2() {
    // 改变透明度
    UIView.animate(withDuration: 0.5, animations: {
        let view = self.view.viewWithTag(1000)
        view?.alpha = 0.0
        self.view.layoutIfNeeded()
    })
}

-End-

0 人点赞