首页
学习
活动
专区
工具
TVP
发布
社区首页 >问答首页 >如何使用UIButton删除pickerView中的选定位置?

如何使用UIButton删除pickerView中的选定位置?
EN

Stack Overflow用户
提问于 2018-08-06 04:55:22
回答 1查看 616关注 0票数 0

我试图使用UIButton删除pickerView的元素,但在连续删除了3个元素后,我得到了错误消息(索引超出范围)。

对不起,我的英语很差,我还年轻,还住在德国。

代码语言:javascript
复制
import UIKit


class ViewController: UIViewController, UIPickerViewDataSource, UIPickerViewDelegate {

    @IBOutlet weak var textFiled: UITextField!
    @IBOutlet weak var pickerView: UIPickerView!

    var Array = ["Blue", "Green", "Red", "White", "Grey"]
    var indexOfPicker = Int()

    override func viewDidLoad() {
        super.viewDidLoad()
        pickerView.dataSource = self
        pickerView.delegate = self
    }

    @IBAction func minusButton(_ sender: UIButton) {
        if Array.count != 0 {
            Array.remove(at: indexOfPicker)
            pickerView.reloadAllComponents()
        }
    }

    @IBAction func plusButton(_ sender: UIButton) {
        if textFiled.text != "" {
            Array.append(textFiled.text!)
            pickerView.reloadAllComponents()
        }
    }

    func numberOfComponents(in pickerView: UIPickerView) -> Int {
        return 1
    }

    func pickerView(_ pickerView: UIPickerView, numberOfRowsInComponent component: Int) -> Int {
        return Array.count
    }

    func pickerView(_ pickerView: UIPickerView, titleForRow row: Int, forComponent component: Int) -> String? {
        return Array[row]
    }

    func pickerView(_ pickerView: UIPickerView, didSelectRow row: Int, inComponent component: Int) {
        indexOfPicker = row
    }    
}

谢谢你的帮助!

EN

回答 1

Stack Overflow用户

发布于 2018-08-06 05:09:40

代码语言:javascript
复制
if Array.count != 0 {

并不意味着你可以删除这个索引indexOfPicker,我认为你需要这个

代码语言:javascript
复制
if indexOfPicker < Array.count {

因为我猜您只能从pickerView中选择一次(当计数为5时,这意味着indexOfPicker在0...4 ),然后点击minusButton 3次

票数 0
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/51698200

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档