swift – 通过分段控制更改地图类型(混合,卫星)
发布时间:2020-12-14 04:30:03 所属栏目:百科 来源:网络整理
导读:我正在尝试使用分段控制按钮更改地图类型,我希望它可以使用3个选项更改地图类型:标准,卫星和混合.到目前为止,我有这个代码但是一旦选择了不同的地图类型就没有任何反应: @IBAction func segmentedControlAction(sender: UISegmentedControl!) { if sender.
我正在尝试使用分段控制按钮更改地图类型,我希望它可以使用3个选项更改地图类型:标准,卫星和混合.到目前为止,我有这个代码但是一旦选择了不同的地图类型就没有任何反应:
@IBAction func segmentedControlAction(sender: UISegmentedControl!) { if sender.selectedSegmentIndex == 0{ mapView.mapType = MKMapType.Standard } else if sender.selectedSegmentIndex == 1{ mapView.mapType = MKMapType.Satellite } else if sender.selectedSegmentIndex == 3{ mapView.mapType = MKMapType.Hybrid } } 我是Swift和Xcode的新手所以感谢任何帮助:) 谢谢 解决方法
首先,确保在分段控件选择更改时调用方法.很容易忘记连接插座方法.一旦确认了这一点,请记住地图数据是异步加载的,因此在选择其他模式后,您可能看不到它立即更改.但是,使用您发布的代码,您将永远不会看到.Hybrid类型,因为3段控件中的selectedSegmentIndex永远不会是3.
实现此方法的更简洁方法是: @IBAction func segmentedControlAction(sender: UISegmentedControl!) { switch (sender.selectedSegmentIndex) { case 0: mapView.mapType = .Standard case 1: mapView.mapType = .Satellite default: mapView.mapType = .Hybrid } } 请注意,Swift在每种情况结束时都不需要break语句. 编辑:Swift 4.1 @IBAction func mapTypeSegmentSelected(_ sender: UISegmentedControl) { switch sender.selectedSegmentIndex { case 0: mapView.mapType = .normal case 1: mapView.mapType = .satellite default: mapView.mapType = .hybrid } } (编辑:李大同) 【声明】本站内容均来自网络,其相关言论仅代表作者个人观点,不代表本站立场。若无意侵犯到您的权利,请及时与联系站长删除相关内容! |