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/

  • 相关阅读:
    node.js之Cookie
    jQuery和js之Cookie实现
    StringRedisTemplate操作Redis
    Could not get a resource from the pool 错误解决
    tableLayoutPanel 列宽度设置
    KRBTabControl(中文)Windows选项卡控件
    KRBTabControl
    Deferred content load was not performed. To provide the content, subscribe to the View's QueryControl event
    where(泛型类型约束)
    ExportAsFixedFormat Visio文件另存为其他几种格式的处理
  • 原文地址:https://www.cnblogs.com/javastart/p/7593085.html
Copyright © 2011-2022 走看看