ios - 快速按钮操作文本更改

标签 ios swift

尝试在按下时更改文本并显示不同类型的 map (混合、标准或卫星)。 但是当我按下按钮时,我收到错误(好吧,不是当我没有“textchange”代码时)。那么,当它知道其不同类型的 map 时,如何更改文本而不出现此错误并使应用程序崩溃......?

我使用这个代码

   @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)
    }
  }
}

最佳答案

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

使用 CTRL 从 Storyboard 的 UISegmentedControl 元素拖动连接来创建一个 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
    }            
}

关于ios - 快速按钮操作文本更改,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/39685280/

相关文章:

ios - 如何将estimatedHeightForRowAtIndexPath与异步函数一起使用? swift

ios - 键值观察 exposureDuration

ios - 放大 UIView 而不会像素化

ios - 如何添加 UIPickerView 部分?

ios - iOS 中 CSS 仅滚动捕捉

ios - 类 "View controller"没有初始化程序

swift - 如何使用 Swift 以编程方式在 iPhone 上打开“朗读屏幕”?

ios - 使用 UIWebView 获取请求的网站的高度

swift - NSToolbar 宽度 Bug with title.hidden

ios - 将构建加载到 iTunes Connect 时出现无效的代码签名权利错误