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/

  • 相关阅读:
    Fiddler响应post的请求 request body里面填写什么?
    intellij idea 插件 ideaVim 用法
    Ubuntu 配置有线网 IP
    Git TortoiseGit SSH设置
    QT+QT creator+OpenCV图像灰度化
    用的最多的Android Studio 快捷键
    做高通平台安卓驱动感言
    《高可用MySQL》2 – 单机版MySQL主从配置
    JAVA学习第四十七课 — IO流(一):文件的读写
    hive 配置文件以及join中null值的处理
  • 原文地址:https://www.cnblogs.com/javastart/p/7593085.html
Copyright © 2011-2022 走看看