更新,,,
今天,學習了view中的MapKit,實現了基本的地圖工具調用。數據庫
地圖使用 SegmentedControl 實現顯示模式切換swift
- 按照以前所學,咱們知道,要在右下角選擇界面組件,這裏咱們搜索map. - 選擇Map Kit View,拖入主界面 - 找到SegmentedControl拖入界面,兩個值分別改成Standard 和 Satellite - 找到pickerView 拖入界面 完成圖以下:
- 首先對pickerView初始化,將pickerView 中的每一個元素設爲城市名
func pickerView(_ pickerView: UIPickerView, numberOfRowsInComponent component: Int) -> Int { return cityList.count } func pickerView(_ pickerView: UIPickerView, titleForRow row: Int, forComponent component: Int) -> String? { return cityList[row].name } func pickerView(_ pickerView: UIPickerView, didSelectRow row: Int, inComponent component: Int) { let selectedCity = cityList[row] let lat = selectedCity.lat let long = selectedCity.long let span = MKCoordinateSpanMake(0.075, 0.075) let region = MKCoordinateRegion(center: CLLocationCoordinate2DMake(lat, long), span: span) myMap.setRegion(region, animated: true) }
- 建立城市類,這裏使用swift裏的struct
import Foundation struct city { var name: String var lat: Double var long: Double
- 而後,咱們須要見一個鏈表來存儲城市, 這裏新建4個; - 新建城市對象以及城市的屬性,插入鏈表
var cityList = [city]() func loadCity() { let shanghai = city(name: "Shanghai", lat: 31.2304, long: 121.4737) let LA = city(name: "Los Angeles", lat: 34.0522, long: -118.2437) let NY = city(name: "New York", lat: 40.7128, long: -74.0059) let Beijing = city(name: "Beijing", lat: 39.9042, long: 116.4074) // append cities into list cityList.append(shanghai) cityList.append(LA) cityList.append(NY) cityList.append(Beijing) }
- 再對segmentControl設定方法
@IBAction func changeMapView(_ sender: Any) { switch mapType.selectedSegmentIndex { case 0: myMap.mapType = MKMapType.standard case 1: myMap.mapType = MKMapType.satellite default: myMap.mapType = MKMapType.standard } }
好,如今來測試app
[image:835C8A90-C849-429E-BB8C-560E2B216962-15699-0000EB0EF90D9A34/Screen Shot 2017-09-17 at 19.32.11.png]工具
這是洛杉磯的standard地圖,學習
這是北京的satellite地圖 ^_^測試
這就完成了簡單的功能demo,後續,還能夠加更多城市,甚至鏈接數據庫,搜索出全球的城市,並定位該地獲得地圖。spa
App school for Xcode and iOS 10 Development Freecode
Copyright © 2017 zhiwei xu. All rights reserved.