123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152153154155156157158159160161162163164165166167168169170171172173174175176177178179180181182183184185186187 |
- //
- // IHDashboardMainView.swift
- // Inhealth
- //
- // Created by weclouds on 2019/12/10.
- // Copyright © 2019 weclouds. All rights reserved.
- //
- import UIKit
- import JXSegmentedView
- import JXPagingView
- class IHDashboardMainView: UIView {
- var gatwayListCallBack:(()->Void)?
-
- var cond_code:String?{
- didSet{
- headerView.cond_code = self.cond_code
- }
- }
- var cond_txt :String?{
- didSet{
- headerView.cond_txt = self.cond_txt
- }
- }
-
- var level:String?{
- didSet{
-
- headerView.level = self.level
- }
- }
-
- var averageAir:String?{
- didSet{
- headerView.averageAir = self.averageAir
- }
- }
-
- var envorentmentInfo:Home_room_env_status?{
- didSet{
- self.segmentedView.reloadData()
- }
- }
- var headerViewCallback : (()->Void)?
- var pagingView: JXPagingView!
- var userHeaderView: IHDashBoardHeaderView!
- var headerContainerView:UIView!
- var segmentedViewDataSource : JXSegmentedTitleDataSource!
- var segmentedView:JXSegmentedView!
- let titles = ["设备概览","环境指数","所有"]
- var tableViewHeaderViewHeight : Int = 220
- var heightForHeaderInSection:Int = 50
- var currentIndex: Int! = 0
- lazy var headerView: IHDashBoardHeaderView = {
- let headerView = IHDashBoardHeaderView(frame: CGRect(x: 0, y: 0, width: Int(KSCREENWIDTH), height: tableViewHeaderViewHeight))
-
- headerView.backgroundColor = .white
- return headerView
- }()
-
- override init(frame: CGRect) {
- super.init(frame: frame)
- headerContainerView = UIView(frame: CGRect(x: 0, y: 0, width: Int(KSCREENWIDTH), height: tableViewHeaderViewHeight))
- headerContainerView.addSubview(headerView)
- headerView.callback = {[unowned self] in
- if let headerViewCallback = self.headerViewCallback {
-
- headerViewCallback()
- }
- }
- //segmentViewDataSource一定要通过属性强持有
- //设置文字样式
- segmentedViewDataSource = JXSegmentedTitleDataSource()
- segmentedViewDataSource.titles = titles
- segmentedViewDataSource.titleSelectedColor = UIColor(hexString: "#333333")!
- segmentedViewDataSource.titleSelectedFont = UIFont(name: PingFangSC_Semibold, size: 16)
- segmentedViewDataSource.titleNormalColor = UIColor(hexString: "#C6CDD5")!
- segmentedViewDataSource.titleNormalFont = UIFont(name: PingFangSC_Semibold, size: 16)!
- segmentedViewDataSource.isTitleColorGradientEnabled = true
- segmentedViewDataSource.isTitleZoomEnabled = true
-
-
- //设置segmentView
- segmentedView = JXSegmentedView(frame: CGRect(x: 0, y: 0, width: KSCREENWIDTH, height: CGFloat(heightForHeaderInSection)))
- segmentedView.delegate = self
- segmentedView.backgroundColor = .white
- segmentedView.dataSource = segmentedViewDataSource
- segmentedView.isContentScrollViewClickTransitionAnimationEnabled = false
-
- //设置指示器
- let lineView = JXSegmentedIndicatorLineView()
- lineView.indicatorColor = UIColor(hexString: "#573F95")!
- lineView.indicatorWidth = 30
- segmentedView.indicators = [lineView]
-
- let lineWidth = 1/UIScreen.main.scale
- let lineLayer = CALayer()
- lineLayer.frame = CGRect(x: 0, y: segmentedView.bounds.height - lineWidth, width: segmentedView.bounds.width, height: lineWidth)
- segmentedView.layer.addSublayer(lineLayer)
-
- pagingView = JXPagingView(delegate: self)
- addSubview(pagingView)
-
-
- segmentedView.contentScrollView = pagingView.listContainerView.collectionView
- }
-
- func d_viewDidLauyouSubView() {
- pagingView.frame = self.bounds
-
- }
- required init?(coder: NSCoder) {
- fatalError("init(coder:) has not been implemented")
- }
- }
- extension IHDashboardMainView:JXPagingViewDelegate{
- func tableHeaderViewHeight(in pagingView: JXPagingView) -> Int {
- return tableViewHeaderViewHeight
- }
-
- func tableHeaderView(in pagingView: JXPagingView) -> UIView {
- return headerContainerView
- }
-
- func heightForPinSectionHeader(in pagingView: JXPagingView) -> Int {
- return heightForHeaderInSection
- }
-
- func viewForPinSectionHeader(in pagingView: JXPagingView) -> UIView {
- return segmentedView
- }
-
- func numberOfLists(in pagingView: JXPagingView) -> Int {
- return titles.count
- }
-
- func pagingView(_ pagingView: JXPagingView, initListAtIndex index: Int) -> JXPagingViewListViewDelegate {
- if index == 0 {
- let list = IHEquipmentView()
- list.gateWayCallback = self.gatwayListCallBack
- pagingView.mainTableView.isScrollEnabled = true
- return list
- }else if index == 1 {
- let list = IHAirQualityView()
- list.envorenmentInfo = self.envorentmentInfo
- pagingView.mainTableView.isScrollEnabled = true
- return list
- }else{
- let list = IHHotelView()
- pagingView.height = self.height
-
- pagingView.mainTableView.isScrollEnabled = true
- return list
- }
- }
-
- func mainTableViewDidScroll(_ scrollView: UIScrollView) {
-
- }
-
- }
- extension IHDashboardMainView:JXSegmentedViewDelegate{
- func segmentedView(_ segmentedView: JXSegmentedView, didSelectedItemAt index: Int) {
- if currentIndex == index {
- return
- }
- if index == 0 {
- pagingView.mainTableView.contentOffset = CGPoint(x: 0, y: 0) //恢复位置
-
- currentIndex = index
- }else if index == 1{
- pagingView.mainTableView.contentOffset = CGPoint(x: 0, y: 0) //恢复位置
-
- currentIndex = index
- }else{
- pagingView.mainTableView.contentOffset = CGPoint(x: 0, y: 0) //恢复位置
-
- currentIndex = index
- }
- }
-
- }
|