// // IHTPickerAreaCell.swift // Inhealth // // Created by weclouds on 2020/3/17. // Copyright © 2020 weclouds. All rights reserved. // //如果啥都没做,就点击保存??? //如果啥都没做 import UIKit protocol IHTPickerAreaCellDelegate : NSObjectProtocol{ func selectedCity(_ indexPath :IndexPath) } class IHTPickerAreaCell: UITableViewCell { var cityCallback:((DropDownData)->Void)? var cityList :[DropDownData]?{ didSet{ if let citylist = self.cityList { if citylist.count > 0 { self.scrollView?.removeSubviews() self.scrollView?.addSubview(buttonView) self.buttonView.frame = CGRect(x: 10, y: 0, width: KSCREENWIDTH - 20, height: culAreaCellHeight(citylist.count)) self.scrollView?.contentSize = CGSize(width: 0, height: culAreaCellHeight(citylist.count)) self.buttonView.reloadData() } } } } lazy var buttonView: IHButtonView = { let buttonView = IHButtonView() buttonView.delegate = self return buttonView }() var scrollView:UIScrollView? override func awakeFromNib() { super.awakeFromNib() scrollView = UIScrollView() self.contentView.addSubview(scrollView!) } override func setSelected(_ selected: Bool, animated: Bool) { super.setSelected(selected, animated: animated) } override func layoutSubviews() { super.layoutSubviews() self.scrollView?.frame = self.bounds } //这里只处理大于0的情况 小于零不创建 func culAreaCellHeight(_ cityCount: Int) ->CGFloat { //计算行数 let row : Int = cityCount / 4 let contentViewHight = 30 * (row + 1) + 10 + 10 + 10 * row return CGFloat(contentViewHight) } } extension IHTPickerAreaCell:IHButtonViewDelegate{ func numberofItem(in buttonView: IHButtonView) -> Int { return self.cityList?.count ?? 0 } func buttonView(_ buttonView: IHButtonView, titleFor item: Int) -> String { return self.cityList![item].name! } func buttonView(_ buttonView: IHButtonView, didSelected item: Int) { log.debug(self.cityList![item].name!) let city = self.cityList![item] Intermediate.cityId = city.id! Intermediate.cityName = city.name! if let block = self.cityCallback { block(self.cityList![item]) } } }