zoukankan      html  css  js  c++  java
  • 第12月第25天 ImagePickerSheetController

    1.ImagePickerSheetController

    open class ImagePickerSheetController: UIViewController, UITableViewDataSource, UITableViewDelegate, UICollectionViewDataSource, UICollectionViewDelegate, UICollectionViewDelegateFlowLayout, UIViewControllerTransitioningDelegate {
    ...
        lazy var backgroundView: UIView = {
            let view = UIView()
            view.backgroundColor = UIColor(white: 0.0, alpha: 0.3961)
            view.addGestureRecognizer(UITapGestureRecognizer(target: self, action: #selector(ImagePickerSheetController.cancel)))
            
            return view
        }()
    ...
        override open func loadView() {
            super.loadView()
            
            view.addSubview(backgroundView)
            view.addSubview(tableView)
        }
    ...    
        // MARK: - Layout
        
        open override func viewDidLayoutSubviews() {
            super.viewDidLayoutSubviews()
            
            backgroundView.frame = view.bounds
            
            let tableViewHeight = Array(0..<tableView.numberOfRows(inSection: 1)).reduce(tableView(tableView, heightForRowAt: IndexPath(row: 0, section: 0))) { total, row in
                total + tableView(tableView, heightForRowAt: IndexPath(row: row, section: 1))
            }
    
            tableView.frame = CGRect(x: view.bounds.minX, y: view.bounds.maxY-tableViewHeight,  view.bounds.width, height: tableViewHeight)
        }
            let authorization = PHPhotoLibrary.authorizationStatus()
            
            if authorization == .notDetermined {
                PHPhotoLibrary.requestAuthorization({ (status) -> Void in
                    DispatchQueue.main.async(execute: { () -> Void in
                        self.pickProfileImage(tap)
                    })
                })
            }
            
            if authorization == .authorized {
                let controller = ImagePickerSheetController()
                
                controller.addAction(ImageAction(title: NSLocalizedString("Take Photo or Video", comment: "Action Title"), secondaryTitle: NSLocalizedString("Use this one", comment: "Action Title"), handler: { (_) -> () in
                    
                    self.presentCamera()
                    
                    }, secondaryHandler: { (action, numberOfPhotos) -> () in
                        controller.getSelectedImagesWithCompletion({ (images) -> Void in
                            self.profileImage = images[0]
                            self.userProfileImageView.image = self.profileImage
                        })
                }))
                
                controller.addAction(ImageAction(title: NSLocalizedString("Cancel", comment: "Action Title"), style: .cancel, handler: nil, secondaryHandler: nil))
                
                present(controller, animated: true, completion: nil)
            }

    https://github.com/allenwong/30DaysofSwift/

  • 相关阅读:
    vue iview 导入excel文件(upload)
    iview table 中用根据不同状态改变颜色(用render)
    vue项目中导出excel表格数据
    iview table 中 render 时间格式化
    微信浏览器的部分特效更接近浏览器IE 9
    ABP 拦截器不工作
    vue + webpack 添加的引用不编译成ES6的问题
    把vue组件添加到body下
    vue+vuex+router实现阻止浏览器回退
    webpack使用vue-moment-libs 在PC微信浏览器下显示空白
  • 原文地址:https://www.cnblogs.com/javastart/p/7593085.html
Copyright © 2011-2022 走看看