123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118 |
- //
- // IHDashboardMapMainVCtr.swift
- // Inhealth
- //
- // Created by weclouds on 2019/12/13.
- // Copyright © 2019 weclouds. All rights reserved.
- //
- import UIKit
- import JXSegmentedView
- class IHDashboardMapMainVCtr: UIViewController {
- var totalItemWidth: CGFloat = 0 //总长度
- var segmentedDataSource:JXSegmentedBaseDataSource?
- var segmentedView = JXSegmentedView()
- lazy var listContainerView: JXSegmentedListContainerView! = {
- return JXSegmentedListContainerView(dataSource: self)
- }()
- deinit {
- log.debug("IHDashboardMapMainVCtr销毁")
- }
- override func viewDidLoad() {
- super.viewDidLoad()
- self.navigationBarTitle = "GIS地图"
- totalItemWidth = UIScreen.main.bounds.size.width - 20*2
- view.backgroundColor = .white
- //let titles = ["酒店", "楼层"]
- let titles = ["酒店"]
- //设置SegmentedView
- let titleDataSource = JXSegmentedTitleDataSource()
- titleDataSource.itemContentWidth = totalItemWidth/CGFloat(titles.count)
- titleDataSource.titles = titles
- titleDataSource.titleNormalFont = UIFont(name: PingFangSC_Medium, size: 12)!
- 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.isItemSpacingAverageEnabled = false
- segmentedDataSource = titleDataSource
- segmentedView.dataSource = segmentedDataSource
-
- segmentedView.layer.masksToBounds = true
- segmentedView.layer.cornerRadius = 15
- segmentedView.backgroundColor = UIColor(hexString: "#F6F8F7")
- segmentedView.delegate = self
- view.addSubview(segmentedView)
- //指示器
- let indicator = JXSegmentedIndicatorBackgroundView()
- indicator.indicatorHeight = 25
- indicator.backgroundWidthIncrement = -10
- 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
- view.addSubview(listContainerView)
-
- }
-
- override func viewWillAppear(_ animated: Bool) {
- super.viewWillAppear(animated)
- //处于第一个item的时候,才允许屏幕边缘手势返回
- navigationController?.interactivePopGestureRecognizer?.isEnabled = (segmentedView.selectedIndex == 0)
-
- }
- override func viewWillDisappear(_ animated: Bool) {
- super.viewWillDisappear(animated)
- //离开页面的时候,需要恢复屏幕边缘手势,不能影响其他页面
- navigationController?.interactivePopGestureRecognizer?.isEnabled = true
- }
-
- override func viewDidLayoutSubviews() {
- super.viewDidLayoutSubviews()
- segmentedView.frame = CGRect(x: 20, y: 10, width: totalItemWidth, height: 30)
- listContainerView.frame = CGRect(x: 0, y: 50, width: view.bounds.size.width, height: view.bounds.size.height - 50)
- }
- }
- extension IHDashboardMapMainVCtr:JXSegmentedViewDelegate{
- func segmentedView(_ segmentedView: JXSegmentedView, didSelectedItemAt index: Int) {
- if let dotDataSource = segmentedDataSource as? JXSegmentedDotDataSource {
- //先更新数据源的数据
- dotDataSource.dotStates[index] = false
- //再调用reloadItem(at: index)
- segmentedView.reloadItem(at: index)
- }
- navigationController?.interactivePopGestureRecognizer?.isEnabled = (segmentedView.selectedIndex == 0)
- }
- }
- //必须实现其代理
- extension IHDashboardMapMainVCtr: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 {
- if index == 0 {
- return IHDashboardHotelMapVCtr()
- }else{
- return IHDashboardFloorMapVCtr()
- }
- }
-
-
- }
|