gpt4 book ai didi

swift - 通过分段控制更改 map 类型(混合、卫星)

转载 作者:搜寻专家 更新时间:2023-10-31 08:09:19 25 4
gpt4 key购买 nike

我正在尝试使用分段控制按钮更改 map 类型,我希望它可以通过 3 个选项更改 map 类型:标准、卫星和混合。到目前为止,我有这段代码,但是一旦选择了不同的 map 类型,什么也不会发生:

@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 的新手,所以非常感谢您的帮助:)

谢谢

最佳答案

首先,确保在分段控件选择更改时调用您的方法。很容易忘记连接 socket 方法。确认后,请记住 map 数据是异步加载的,因此您可能不会在选择不同模式后立即看到它发生变化。但是,使用您发布的代码,您永远不会看到 .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 不需要在每个 case 末尾都有 break 语句。

编辑:Swift 4.1

@IBAction func mapTypeSegmentSelected(_ sender: UISegmentedControl) {
switch sender.selectedSegmentIndex {
case 0:
mapView.mapType = .standard
case 1:
mapView.mapType = .satellite
default:
mapView.mapType = .hybrid
}
}

关于swift - 通过分段控制更改 map 类型(混合、卫星),我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/33200161/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com