161 lines
5.3 KiB
Swift
161 lines
5.3 KiB
Swift
import UIKit
|
|
import ContainerControllerSwift
|
|
|
|
import MapKit
|
|
import CoreLocation
|
|
|
|
class MapParkingViewController: StoryboardController {
|
|
|
|
@IBOutlet weak var tableView: TableAdapterView!
|
|
var containers: [ContainerController] = []
|
|
|
|
var containerTableView: TableAdapterView?
|
|
var container: ContainerController?
|
|
var header: MapParkingHeaderView?
|
|
var top: Bool = false
|
|
@IBOutlet weak var mapView: MKMapView!
|
|
var mapManager: MapViewManager!
|
|
override func viewDidLoad() {
|
|
super.viewDidLoad()
|
|
|
|
mapView.delegate = self
|
|
self.navBarHide = true
|
|
view.backgroundColor = .white
|
|
// let color1 = #colorLiteral(red: 0.1019607843, green: 0.168627451, blue: 0.4588235294, alpha: 1)
|
|
// let img1 = #imageLiteral(resourceName: "imgPlaylistMain")
|
|
|
|
let items: [TableAdapterItem] = []
|
|
// items.append( PlaylistTitleItem(state: .init() ) )
|
|
tableView.set(items: items, animated: true)
|
|
tableView.isHidden = true
|
|
|
|
let fr = CGRect(x: 0, y: -12, width: ScreenSize.width, height: 12)
|
|
let headerr = MapParkingHeaderView()
|
|
headerr.frame = fr
|
|
header = headerr
|
|
|
|
let ccc = addContainer(position: .init(top: 110, /*middle: 458, */bottom: 258), radius: 52, items: self.getItems(mini: true), addBackShadow: true)
|
|
|
|
container = ccc.0
|
|
|
|
self.container?.set(left: 28)
|
|
self.container?.set(right: 28)
|
|
self.container?.view.cornerRadius = 33
|
|
self.container?.view.backgroundColor = .clear
|
|
|
|
ccc.0.view.clipsToBounds = false
|
|
ccc.0.scrollView?.clipsToBounds = false
|
|
ccc.0.backView?.clipsToBounds = false
|
|
headerr.clipsToBounds = false
|
|
// ccc.0.backView?.addSubview( header)
|
|
containerTableView = ccc.1
|
|
|
|
|
|
|
|
containers.append( ccc.0 )
|
|
|
|
setMoveLocationMap()
|
|
|
|
|
|
main(delay: 0.5) {
|
|
self.container?.move(type: .bottom)
|
|
}
|
|
}
|
|
|
|
|
|
func setMoveLocationMap() {
|
|
|
|
|
|
let l: (Double, Double) = (-37.92104865902625 ,144.99516418028998 )
|
|
let s: Double = 0.08
|
|
|
|
let region = MKCoordinateRegion(
|
|
center: CLLocationCoordinate2D(
|
|
|
|
latitude: l.0,
|
|
longitude: l.1
|
|
|
|
), span: MKCoordinateSpan(
|
|
latitudeDelta: s,
|
|
longitudeDelta: s
|
|
)
|
|
)
|
|
|
|
DispatchQueue.main.async {
|
|
self.mapView.setRegion(region, animated: true)
|
|
}
|
|
}
|
|
|
|
override func containerControllerMove(_ containerController: ContainerController, position: CGFloat, type: ContainerMoveType, animation: Bool) {
|
|
if animation {
|
|
if type == .top, !top {
|
|
top = !top
|
|
self.container?.set(left: 0)
|
|
self.container?.set(right: 0)
|
|
self.container?.view.cornerRadius = 52
|
|
|
|
if let h = header, self.container?.headerView == nil { self.container?.add(headerView: h) }
|
|
|
|
self.containerTableView?.set(
|
|
items: self.getItems(mini: false),
|
|
animated: false
|
|
)
|
|
|
|
} else if top {
|
|
top = !top
|
|
|
|
self.container?.set(left: 28)
|
|
self.container?.set(right: 28)
|
|
|
|
self.container?.view.cornerRadius = 33
|
|
|
|
self.container?.removeHeaderView()
|
|
|
|
|
|
self.containerTableView?.set(
|
|
items: self.getItems(mini: true),
|
|
animated: false
|
|
)
|
|
}
|
|
}
|
|
}
|
|
|
|
|
|
|
|
|
|
func getItems(mini: Bool) -> [TableAdapterItem] {
|
|
|
|
let imgg10 = #imageLiteral(resourceName: "imgMapParkingPic0")
|
|
let imgg11 = #imageLiteral(resourceName: "imgMapParkingPic1")
|
|
let imgg12 = #imageLiteral(resourceName: "imgMapParkingPic2")
|
|
let imgg13 = #imageLiteral(resourceName: "imgMapParkingPic3")
|
|
|
|
var itemsC: [TableAdapterItem] = []
|
|
// if mini { itemsC.append( MapParkingMiniItem(state: .init() ) ) }
|
|
|
|
if mini {
|
|
|
|
var itemsTT: [CollectionAdapterItem] = []
|
|
itemsTT.append( MapParkingTgItem(state: .init(firstImage: imgg10)))
|
|
itemsTT.append( MapParkingTgItem(state: .init(firstImage: imgg11)))
|
|
itemsTT.append( MapParkingTgItem(state: .init(firstImage: imgg12)))
|
|
itemsTT.append( MapParkingTgItem(state: .init(firstImage: imgg13)))
|
|
|
|
itemsC.append( MapParkingMiniItem(state: .init(items: itemsTT, insets: .init(minSpacing: .init(cell: 12, line: 12), insets: .init(top: 0, left: 20, bottom: 0, right: 20))) ) )
|
|
|
|
}
|
|
|
|
if !mini { itemsC.append( MapParkingDetailsItem(state: .init() ) ) }
|
|
return itemsC
|
|
|
|
}
|
|
|
|
}
|
|
|
|
extension MapParkingViewController: MKMapViewDelegate {
|
|
func mapViewDidChangeVisibleRegion(_ mapView: MKMapView) {
|
|
let c = mapView.centerCoordinate
|
|
print(" 🙅♂️🙅♂️\( c.latitude) \( c.longitude) \(mapView.region.span.latitudeDelta)" )
|
|
}
|
|
}
|