1234567891011121314151617181920212223242526272829303132333435363738394041424344454647484950515253545556575859606162636465666768697071727374757677787980 |
- //
- // MTImagePickerAlbumController.swift
- // MTImagePicker
- //
- // Created by Luo on 9/6/16.
- // Copyright © 2016 Luo. All rights reserved.
- //
- import UIKit
- import AssetsLibrary
- class MTImagePickerAlbumCell: UITableViewCell {
- @IBOutlet weak var lbAlbumCount: UILabel!
- @IBOutlet weak var lbAlbumName: UILabel!
- @IBOutlet weak var posterImageView: UIImageView!
- func setup(model: MTImagePickerAlbumModel) {
- self.lbAlbumCount.text = "(\(model.getAlbumCount()))"
- self.lbAlbumName.text = model.getAlbumName()
- self.posterImageView.image = model.getAlbumImage(size: self.posterImageView.frame.size)
- }
- }
- class MTImagePickerAlbumsController: UITableViewController {
- var mediaTypes: [MTImagePickerMediaType] = [MTImagePickerMediaType.Photo]
- var source: MTImagePickerSource = .ALAsset
- var maxCount: Int = Int.max
- weak var delegate: MTImagePickerControllerDelegate?
- private var dataSource = [MTImagePickerAlbumModel]()
- private var _source: MTImagePickerSource = .Photos
- class var instance: MTImagePickerAlbumsController {
- get {
- let storyboard = UIStoryboard(name: "MTImagePicker", bundle: Bundle.main)
- let vc = storyboard.instantiateViewController(withIdentifier: "MTImagePickerAlbumsController") as! MTImagePickerAlbumsController
- return vc
- }
- }
- override func viewDidLoad() {
- self.tableView.tableFooterView = UIView()
- MTImagePickerDataSource.fetch(type: self.source, mediaTypes: self.mediaTypes, complete: { (dataSource) in
- self.dataSource = dataSource
- self.tableView.reloadData()
- })
- }
- override func tableView(_ tableView: UITableView, numberOfRowsInSection section: Int) -> Int {
- return self.dataSource.count
- }
- override func tableView(_ tableView: UITableView, cellForRowAt indexPath: IndexPath) -> UITableViewCell {
- let model = self.dataSource[indexPath.row]
- let cell = self.tableView.dequeueReusableCell(withIdentifier: "MTImagePickerAlbumCell", for: indexPath as IndexPath)
- (cell as? MTImagePickerAlbumCell)?.setup(model: model)
- return cell
- }
- override func tableView(_ tableView: UITableView, didSelectRowAt indexPath: IndexPath) {
- let model = self.dataSource[indexPath.row]
- self.pushToMTImagePickerController(model: model, animate: true)
- tableView.deselectRow(at: indexPath as IndexPath, animated: true)
- }
- func pushToMTImagePickerController(model: MTImagePickerAlbumModel, animate: Bool) {
- let controller = MTImagePickerAssetsController.instance
- controller.groupModel = model
- controller.delegate = self.delegate
- controller.maxCount = self.maxCount
- controller.source = self.source
- self.navigationController?.pushViewController(controller, animated: animate)
- }
- @IBAction func btnCancelTouch(_ sender: AnyObject) {
- self.dismiss(animated: true, completion: nil)
- }
- }
|