@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 – 通过分段控制更改地图类型(混合,卫星)所遇到的程序开发问题。
如果觉得内存溢出网站内容还不错,欢迎将内存溢出网站推荐给程序员好友。
欢迎分享,转载请注明来源:内存溢出
评论列表(0条)