swift – 通过分段控制更改地图类型(混合,卫星)

swift – 通过分段控制更改地图类型(混合,卫星),第1张

概述我正在尝试使用分段控制按钮更改地图类型,我希望它可以使用3个选项更改地图类型:标准,卫星和混合.到目前为止,我有这个代码但是一旦选择了不同的地图类型就没有任何反应: @IBAction func segmentedControlAction(sender: UISegmentedControl!) { if sender.selectedSegmentIndex == 0{ 我正在尝试使用分段控制按钮更改地图类型,我希望它可以使用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        }    }
总结

以上是内存溢出为你收集整理的swift – 通过分段控制更改地图类型(混合,卫星)全部内容,希望文章能够帮你解决swift – 通过分段控制更改地图类型(混合,卫星)所遇到的程序开发问题。

如果觉得内存溢出网站内容还不错,欢迎将内存溢出网站推荐给程序员好友。

欢迎分享,转载请注明来源:内存溢出

原文地址: https://outofmemory.cn/web/1001568.html

(0)
打赏 微信扫一扫 微信扫一扫 支付宝扫一扫 支付宝扫一扫
上一篇 2022-05-21
下一篇 2022-05-21

发表评论

登录后才能评论

评论列表(0条)

保存