CellMucChupWithCamera.swift 3.7 KB
import Foundation
import UIKit
import GeneralUtils

class CellMucChupWithCamera: BaseTableViewCellUI {
    var tvTitle: UILabel!, imv: UIImageView!
    var mucChup: ShootItem!

    static func registerClass(tableView: UITableView, forCellReuseIdentifier: String) {
        tableView.register(CellMucChupWithCamera.self, forCellReuseIdentifier: forCellReuseIdentifier)
    }

    override init(style: UITableViewCellStyle, reuseIdentifier: String?) {
        super.init(style: style, reuseIdentifier: reuseIdentifier)
        initView()
    }

    required init?(coder aDecoder: NSCoder) {
        super.init(coder: aDecoder)
        initView()
    }

    private func initView() {
        let stackView = UIStackView()
        stackView.axis = UILayoutConstraintAxis.horizontal
        stackView.translatesAutoresizingMaskIntoConstraints = false
        self.contentView.addSubview(stackView)
        NSLayoutConstraint.activate([stackView.topAnchor.constraint(equalTo: contentView.topAnchor, constant: 8),
                                     stackView.leftAnchor.constraint(equalTo: contentView.leftAnchor, constant: 8),
                                     stackView.rightAnchor.constraint(equalTo: contentView.rightAnchor, constant: -8),
                                     stackView.bottomAnchor.constraint(equalTo: contentView.bottomAnchor, constant: -8)])
        tvTitle = UILabel()
        tvTitle.numberOfLines = 0
        stackView.addArrangedSubview(tvTitle)
        tvTitle.isUserInteractionEnabled = true
        let tapTitle = UITapGestureRecognizer(target: self, action: #selector(CellMucChupWithCamera.titleClick))
        tvTitle.addGestureRecognizer(tapTitle)

        imv = UIImageView()
        imv.contentMode = .scaleAspectFit
        imv.isUserInteractionEnabled = true
        stackView.addArrangedSubview(imv)
        imv.widthAnchor.constraint(equalToConstant: 80).isActive = true
        imv.heightAnchor.constraint(equalToConstant: 60).isActive = true
        imv.image = #imageLiteral(resourceName:"camera_black_ic").imageWithInsets(insetDimen: 10) ?? #imageLiteral(resourceName:"camera_black_ic")
        let tap = UITapGestureRecognizer(target: self, action: #selector(CellMucChupWithCamera.btnImvClick))
        imv.addGestureRecognizer(tap)
    }

    func titleClick() {
        guard let viewController = self.viewController else { return }
        if viewController is VCConfirmMucDaChon { return }
        var imgObjs = [ImgObj]()
        var imgObj = ImgObj()
        imgObj.url = "http://thosonnha.nhq.vn/wp-content/uploads/2015/05/son-lot-tuong.jpg"
        imgObjs.append(imgObj)

        imgObj = ImgObj()
        imgObj.url = "http://media.vietq.vn/files/meo-tay-vet-ban-tren-tuong-1.jpg"
        imgObjs.append(imgObj)

        imgObj = ImgObj()
        imgObj.url = "http://file1.batdongsan.com.vn/file.396375.jpg"
        imgObjs.append(imgObj)

        VCPageImgs.openController(viewController, imgObjs: imgObjs)
    }

    func btnImvClick() {
        guard let viewController = self.viewController else { return }
        if viewController is VCConfirmMucDaChon { return }
        let cameraViewController = CameraViewController(croppingEnabled: false, allowsLibraryAccess: true) { [weak viewController, weak self] image, asset in
            viewController?.dismiss(animated: true, completion: nil)
            guard let image = image else { return }
            self?.imv?.image = image
            //TODO save image
        }

        viewController.present(cameraViewController, animated: true, completion: nil)
    }

    override func configCellWithData(baseObj: Any, index: Int) {
        super.configCellWithData(baseObj: baseObj, index: index)
        mucChup = baseObj as! ShootItem
        tvTitle.text = mucChup.name
    }
}