123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152153 |
- //
- // ZonePickerView.swift
- // ZoneBarManager
- //
- // Created by 刘振兴 on 2017/3/15.
- // Copyright © 2017年 zone. All rights reserved.
- //
- import UIKit
- public func ZoneRect(_ x:Double,_ y:Double,_ w:Double,_ h:Double) -> CGRect{
- return CGRect(x: Double(UIScreen.main.bounds.width) * x, y: Double(UIScreen.main.bounds.height) * y, width: Double(UIScreen.main.bounds.width) * w, height: Double(UIScreen.main.bounds.height) * h)
- }
- public func ZoneColorAlpha(_ r:CGFloat,_ g:CGFloat,_ b:CGFloat,_ a:CGFloat) -> UIColor {
- return UIColor(red: r / 255.0, green: g/255.0, blue: b/255.0, alpha: a)
- }
- class ZonePickerView: UIView,UITableViewDataSource,UITableViewDelegate,ZoneFileListCellDelegate{
-
- var title:String = "附件列表"
-
- var pickViewHeight = 350
-
- var topView:UIView!
-
- var doneBtn:UIButton!
-
- var pickerView:UITableView!
-
- var result:String!
-
- var models:[ZonePickerModel] = []
-
- var selectModel:ZonePickerModel!
-
- override init(frame: CGRect) {
- super.init(frame: ZoneRect(0, 0, 1, 917/617))
-
- }
-
-
- required init?(coder aDecoder: NSCoder) {
- fatalError("init(coder:) has not been implemented")
- }
-
- override func layoutSubviews() {
- super.layoutSubviews()
- self.backgroundColor = ZoneColorAlpha(0, 0, 0, 0.4)
-
- //
- self.topView = UIView(frame: ZoneRect(0, 667/667, 1, Double(pickViewHeight)/667))
- self.topView.backgroundColor = UIColor.white
- self.addSubview(topView)
-
- self.doneBtn = UIButton(type: .custom)
- self.doneBtn.setImage(#imageLiteral(resourceName: "icon_delete2_por"), for: .normal)
- // self.doneBtn.setTitle("Close", for: .normal)
- // self.doneBtn.setTitleColor(UIColor.gray, for: .normal)
- self.doneBtn.frame = ZoneRect(330/375, 5/667, 50/375, 40/667)
- self.doneBtn.addTarget(self, action: #selector(quit), for: .touchUpInside)
- self.topView.addSubview(doneBtn)
-
- let titleLB = UILabel(frame: ZoneRect(10/375, 0, 175/375, 50/667))
- titleLB.backgroundColor = UIColor.clear
- titleLB.textAlignment = .left
- //titleLB.text = title
- titleLB.attributedText = NSAttributedString(string: title, attributes: [NSAttributedString.Key.font:UIFont(name: "PingFangSC-Regular", size: 16.0)!,NSAttributedString.Key.foregroundColor:ZoneColorAlpha(102, 102, 102, 1)])
- //titleLB.font = UIFont(name: "PingFangSC-Regular", size: 16.0)!
- self.topView.addSubview(titleLB)
-
- self.pickerView = UITableView(frame: ZoneRect(0,50/667,1,300/667), style: .plain)
- self.pickerView.tableFooterView = UIView()
-
- self.pickerView.register(UINib(nibName: "ZoneFileListCell", bundle: Bundle.main), forCellReuseIdentifier: "ZonePickerCell")
- self.pickerView.dataSource = self
- self.pickerView.delegate = self
- self.topView.addSubview(self.pickerView)
-
- }
-
- public func showPickerView(){
- self.showInView(UIApplication.shared.keyWindow!)
- }
-
- public func hidePickerView(){
- UIView.animate(withDuration: 0.5, animations: {
- self.alpha = 0
- var point = self.center
- point.y += CGFloat(self.pickViewHeight)
- self.center = point
- }) { (finished) in
- //NotificationCenter.default.post(name: NSNotification.Name("QUIT_ATTACH_OBJ"), object: nil)
- self.removeFromSuperview()
- }
- }
-
- private func showInView(_ view:UIView){
- UIView.animate(withDuration: 0.5, animations: {
- var point = self.center
- point.y -= CGFloat(self.pickViewHeight)
- self.center = point
- }) { (finished) in
-
- }
- view.addSubview(self)
- }
-
- @objc private func quit(){
- UIView.animate(withDuration: 0.5, animations: {
- self.alpha = 0
- var point = self.center
- point.y += CGFloat(self.pickViewHeight)
- self.center = point
- }) { (finished) in
- NotificationCenter.default.post(name: NSNotification.Name("QUIT_ATTACH_OBJ"), object: nil)
- self.removeFromSuperview()
- }
- }
-
-
-
- func numberOfSections(in tableView: UITableView) -> Int {
- return 1
- }
-
- func tableView(_ tableView: UITableView, numberOfRowsInSection section: Int) -> Int {
- return models.count
- }
-
- func tableView(_ tableView: UITableView, cellForRowAt indexPath: IndexPath) -> UITableViewCell {
- let cell = tableView.dequeueReusableCell(withIdentifier: "ZonePickerCell", for: indexPath) as! ZoneFileListCell
- cell.delegate = self
- cell.pickerModel = self.models[indexPath.row]
- return cell
- }
-
- func tableView(_ tableView: UITableView, didSelectRowAt indexPath: IndexPath) {
- print("the \(indexPath.row) row")
- }
-
- func tableView(_ tableView: UITableView, viewForFooterInSection section: Int) -> UIView? {
- return UIView()
- }
-
- func cellClick(_ model: ZonePickerModel) {
- self.selectModel = model
- NotificationCenter.default.post(name: NSNotification.Name("SHOW_ATTACH_OBJ"), object: model)
- }
- }
|