Arry,如何设置带有 4 个组件的pickerView?迅速

Posted

技术标签:

【中文标题】Arry,如何设置带有 4 个组件的pickerView?迅速【英文标题】:How do I setUp a pickerView with 4 components, Arry? Swift 【发布时间】:2020-11-10 16:22:43 【问题描述】:

我尝试了很多,但它只显示“?”在四个组件的行中。 是否可以将字符串放在 Array Like 中的第一位作为 4 个组件的标题?我有想法将数组中的所有整数都更改为字符串,但这会花费我太长时间...

let componentOne = [1...1000]
    let componentTwo = [1...59]
    let componentThree = [1...59]
    let componentFour = [1...3]
    
    func numberOfComponents(in pickerView: UIPickerView) -> Int 
        return 4
    
    func pickerView(_ pickerView: UIPickerView, numberOfRowsInComponent component: Int) -> Int 
        if component == 0 
            return 1000
        
        if component == 1 
            return 59
        
        if component == 2 
            return 59
        
        if component == 3 
            return 3
        
        return component
    
        
    func pickerView(_ pickerView: UIPickerView, titleForRow row: Int, forComponent component: Int) -> Int 
        if component == 0 
            let row = componentOne[row]
            return 1000
            
            if component == 1 
                let row = componentTwo[row]
                return 59
                
                if component == 2 
                    let row = componentThree[row]
                    return 59
                    
                    if component == 3 
                        let row = componentFour[row]
                        return 10
                        
        return row
                    
    ```

【问题讨论】:

【参考方案1】:

您不能只更改委托方法。这是correct 一个:

func pickerView(_ pickerView: UIPickerView, 
                titleForRow row: Int, 
                forComponent component: Int) -> String?

你有:

func pickerView(_ pickerView: UIPickerView,
                titleForRow row: Int,
                forComponent component: Int) -> Int

无论如何你都必须返回一个String?——如果你将函数的返回类型更改为Int,它不符合协议要求。

好消息是您可以轻松地从Int 生成String。只需像这样使用字符串插值:

/// Inside pickerView(_:titleForRow:forComponent:)

let row = componentOne[row]
    return "\(1000)"

【讨论】:

好的,谢谢,但是组件只是显示了它们的数组计数....它不会连续旋转 @EasyChris “它不连续旋转”是什么意思?你希望它显示什么? 我的意思是数组的每个数字都在自己的行中。像普通的pickerView一样,但我的第一个组件是1000x1000,第二个组件是59x59.....它应该以一个开头,然后以数组的最后一个数字结束

以上是关于Arry,如何设置带有 4 个组件的pickerView?迅速的主要内容,如果未能解决你的问题,请参考以下文章

如何使用 React Router 维护路由之间的状态?

如何使用 UIPickerView 设置第二个组件

Vuelidate:设置$ model不会更新组件

shell学习~~shell数组

java编写冒泡排序

反向递归,树组件常用逻辑