123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152153154155156157158159160161162163164165166167168169170171172173174175176177178179180181182183184185186187188189190191 |
- //
- // IHGatewayDetailView.swift
- // Inhealth
- //
- // Created by weclouds on 2020/4/9.
- // Copyright © 2020 weclouds. All rights reserved.
- //
- import UIKit
- import JXSegmentedView
- protocol IHGatewayDetailViewDelegate : NSObjectProtocol {
- func emptyViewSearchDataSegment(_ index:Int,floorId:String,roomId:String,gatewayId:String)
- func deviceConnectGateway(_ deviceId:String,gatewayId:String)
- func deviceDisconteGateway(_ deviceId:String,gatewayId:String)
- func controlightOn(lampId:String,gatewayId:String,status:String)
- }
- class IHGatewayDetailView: UIView {
- weak var delegate:IHGatewayDetailViewDelegate?
- var associatedList:[GatewayLamp]?{
- didSet{
- segmentedView.reloadData()
- if let list = self.associatedList {
- self.associatedCountLabel.text = "\(list.count)"
- }
- }
- }
-
- var notAssociatedList:[GatewayLamp]?{
- didSet{
- segmentedView.reloadData()
- }
- }
-
- var gateway : GatewayData?{
- didSet{
- if let gateway = self.gateway {
- if let gatewayName = gateway.network_name,let gatewayId = gateway.gatewayId {
- self.gatewayNameLabel.text = gatewayName.isBlanck == false ? gatewayName : "网关"
- self.gatewayIdLabel.text = "网关 · " + gatewayId
- }
- }
- }
- }
- @IBOutlet weak var gatewayNameLabel: UILabel!
-
- @IBOutlet weak var gatewayIdLabel: UILabel!
-
- @IBOutlet weak var associatedCountLabel: UILabel!
-
- @IBOutlet weak var listContentView: UIView!
-
-
- let titles = ["关联", "未关联"]
- var currentIndex : Int? = 0
- var totalItemWidth: CGFloat = 0 //总长度
- var segmentedDataSource:JXSegmentedBaseDataSource?
- var segmentedView = JXSegmentedView()
- lazy var listContainerView: JXSegmentedListContainerView! = {
- return JXSegmentedListContainerView(dataSource: self)
- }()
- override func awakeFromNib() {
- super.awakeFromNib()
- cinfigSegmentdView()
- }
-
- override func layoutSubviews() {
- super.layoutSubviews()
- segmentedView.frame = CGRect(x: 20, y: 0, width: totalItemWidth, height: 30)
- listContainerView.frame = CGRect(x: 0, y: 40, width: KSCREENWIDTH, height: self.listContentView.bounds.size.height - 40)
- }
- }
- extension IHGatewayDetailView{
- func cinfigSegmentdView() {
- totalItemWidth = UIScreen.main.bounds.size.width - 20*2
- backgroundColor = .white
- let titleDataSource = JXSegmentedTitleDataSource()
- titleDataSource.itemContentWidth = totalItemWidth/CGFloat(titles.count)
- titleDataSource.titles = titles
- titleDataSource.titleNormalFont = UIFont(name: Alibaba_PuHuiTi_Regular, size: 13)!
- titleDataSource.titleSelectedFont = UIFont(name: Alibaba_PuHuiTi_Bold, size: 13)!
- titleDataSource.isTitleMaskEnabled = true
- titleDataSource.titleNormalColor = UIColor(hexString: "#657085")!
- titleDataSource.titleSelectedColor = UIColor(hexString: "#FFFFFF")!
- titleDataSource.itemSpacing = 0
- // titleDataSource.itemContentWidth = 120
- //titleDataSource.isItemSpacingAverageEnabled = false
- segmentedDataSource = titleDataSource
- segmentedView.dataSource = segmentedDataSource
- segmentedView.layer.masksToBounds = true
- segmentedView.layer.cornerRadius = 15
- segmentedView.backgroundColor = UIColor(hexString: "#F6F8F7")
- segmentedView.delegate = self
- self.listContentView.addSubview(segmentedView)
- let indicator = JXSegmentedIndicatorBackgroundView()
- indicator.indicatorHeight = 25
- indicator.backgroundWidthIncrement = -10
- // #05CFAB
- indicator.indicatorColor = UIColor(hexString: "#573F95")!
- indicator.layer.shadowColor = UIColor(hexString: "#573F95")!.cgColor
- indicator.layer.shadowRadius = 3
- indicator.layer.shadowOffset = CGSize.zero
- indicator.layer.shadowOpacity = 0.7
- segmentedView.indicators = [indicator]
-
- segmentedView.listContainer = listContainerView
- self.listContentView.addSubview(listContainerView)
- }
- }
- extension IHGatewayDetailView:JXSegmentedViewDelegate{
- func segmentedView(_ segmentedView: JXSegmentedView, didSelectedItemAt index: Int) {
- // if let delegate = self.delegate {
- // delegate.equipmentlistViewdidSelectedItemAt(index)
- // }
- self.currentIndex = index
- if let dotDataSource = segmentedDataSource as? JXSegmentedDotDataSource {
- //先更新数据源的数据
- dotDataSource.dotStates[index] = false
- //再调用reloadItem(at: index)
- segmentedView.reloadItem(at: index)
- }
-
- }
- }
- extension IHGatewayDetailView:JXSegmentedListContainerViewDataSource{
- func numberOfLists(in listContainerView: JXSegmentedListContainerView) -> Int {
- if let titleDataSource = segmentedView.dataSource as? JXSegmentedBaseDataSource {
- return titleDataSource.dataSource.count
- }
- return 0
- }
-
- func listContainerView(_ listContainerView: JXSegmentedListContainerView, initListAt index: Int) -> JXSegmentedListContainerViewListDelegate {
-
- let view = IHAssociatedView()
- view.delegate = self
- view.currentIndex = index
- if index == 0 {
- if let associate = self.associatedList {
- view.associatedList = associate
- }
- }else{
- if let notassciate = self.notAssociatedList {
- view.notAssociatedList = notassciate
- }
- }
-
- return view
- }
-
-
- }
- extension IHGatewayDetailView: IHAssociatedViewDelegate{
- func emptyViewSearchDataSegment(_ index: Int) {
- guard let gateway = self.gateway else { return }
- if let delegate = self.delegate {
- delegate.emptyViewSearchDataSegment(index, floorId: gateway.floorId!, roomId: gateway.roomId!, gatewayId: gateway.gatewayId!)
- }
- }
-
- func deviceConnectGateway(_ deviceId: String) {
- guard let gateway = self.gateway else { return }
- if let delegate = self.delegate {
- delegate.deviceConnectGateway(deviceId, gatewayId: gateway.gatewayId!)
- }
-
- }
-
- func deviceDisconteGateway(_ deviceId: String) {
- guard let gateway = self.gateway else { return }
- if let delegate = self.delegate {
- delegate.deviceDisconteGateway(deviceId, gatewayId: gateway.gatewayId!)
- }
- }
-
- func controlightOn(_ isTurnON: Bool, lampId: String) {
- guard let gateway = self.gateway else { return }
- if let delegate = self.delegate {
- delegate.controlightOn(lampId: lampId, gatewayId: gateway.gatewayId!, status: isTurnON == false ? "0" : "1")
- }
- }
-
-
- }
|