2016-09-25 116 views
0

试图在按下按钮时显示文本,并显示不同类型的地图(混合,标准或卫星)。 但是,当我按下按钮,我得到错误(当然,当我没有“textchange”代码)。那么,如何知道其不同类型的地图而不会出现此错误并导致应用程序崩溃?快速按钮操作文本更改

我用这个代码

@IBAction func mapType(sender: AnyObject) { 
    if Mapview.mapType == MKMapType.Standard { 
     Mapview.mapType = MKMapType.Satellite 
     sender.setTitle("Satellite", forState: .Normal) 

    } else { 
     if Mapview.mapType == MKMapType.Satellite { 
      Mapview.mapType = MKMapType.Hybrid 
      sender.setTitle("Hybrid", forState: .Normal) 

    } else { 
      Mapview.mapType = MKMapType.Standard 
      sender.setTitle("Standard", forState: .Normal) 
    } 
    } 
} 

回答

0

三种状态之间切换时,我宁愿用UISegmentedControl

用您的故事板的UISegmentedControl元素的CTRL拖动连接创建一个IBAction

实现方法如下:

@IBAction func segmentedControlChanged(_ sender: UISegmentedControl) { 

    print(sender.selectedSegmentIndex)   
    // if states within your control is indexed in following order: Standard, Satellite, Hybrid: 

    switch sender.selectedSegmentIndex { 
     case 0: 
      Mapview.mapType = MKMapType.Standard 
     case 1: 
      Mapview.mapType = MKMapType.Satellite 
     case 2: 
      Mapview.mapType = MKMapType.Hybrid 
     default: 
      Mapview.mapType = MKMapType.Standard 
    }    
} 
+0

做了一个标签,并使其改变文字。虽然 – Adam

+0

谢谢当我按下按钮..错误 – Adam

+0

什么按钮?请提供一定的错误 – pedrouan