Loading an “overlay” when running long tasks in iOS

前端 未结 11 970
没有蜡笔的小新
没有蜡笔的小新 2020-12-22 16:15

What is example for loading overlay in Swift IOS application when do a long tasks. Example for loading data from remote server. I googled but not found any answer.

U

11条回答
  •  抹茶落季
    2020-12-22 16:56

    Blur background + Activity Indicator, Swift 5 example

    extension UIView {
        func showBlurLoader() {
            let blurLoader = BlurLoader(frame: frame)
            self.addSubview(blurLoader)
        }
    
        func removeBluerLoader() {
            if let blurLoader = subviews.first(where: { $0 is BlurLoader }) {
                blurLoader.removeFromSuperview()
            }
        }
    }
    
    
    class BlurLoader: UIView {
    
        var blurEffectView: UIVisualEffectView?
    
        override init(frame: CGRect) {
            let blurEffect = UIBlurEffect(style: .dark)
            let blurEffectView = UIVisualEffectView(effect: blurEffect)
            blurEffectView.frame = frame
            blurEffectView.autoresizingMask = [.flexibleWidth, .flexibleHeight]
            self.blurEffectView = blurEffectView
            super.init(frame: frame)
            addSubview(blurEffectView)
            addLoader()
        }
    
        required init?(coder aDecoder: NSCoder) {
            fatalError("init(coder:) has not been implemented")
        }
    
        private func addLoader() {
            guard let blurEffectView = blurEffectView else { return }
            let activityIndicator = UIActivityIndicatorView(style: .whiteLarge)
            activityIndicator.frame = CGRect(x: 0, y: 0, width: 50, height: 50)
            blurEffectView.contentView.addSubview(activityIndicator)
            activityIndicator.center = blurEffectView.contentView.center
            activityIndicator.startAnimating()
        }
    }
    

提交回复
热议问题