设置 UIPickerView 行的背景颜色

Posted

技术标签:

【中文标题】设置 UIPickerView 行的背景颜色【英文标题】:Set background color of UIPickerView row 【发布时间】:2019-10-11 08:51:12 【问题描述】:

我有两个关于选择器视图的问题。

如何为特定行设置选择器视图背景颜色?我正在尝试制作具有另一种背景颜色的“部分”。另外,我怎样才能确保它们是不可滚动的?我的意思是,用户不应该能够“停止”该选择,应用程序应该向下滚动到下一个可用的选项。

    func pickerView(_ pickerView: UIPickerView, viewForRow row: Int, forComponent component: Int, reusing view: UIView?) -> UIView 

    if WhatBool == true

    

我目前有这一行。当我在这个问题上搜索时,我找不到任何实际有效的东西,而不是针对特定行。我做错了吗?如何在选择器视图中创建部分?一切似乎都已经过时了,所以我很想就此获得一些意见。

我想我应该在 viewForRow 中更改此类内容。但我现在完全陷入困境。

【问题讨论】:

【参考方案1】:
func pickerView(_ pickerView: UIPickerView, viewForRow row: Int, forComponent component: Int, reusing view: UIView?) -> UIView 

        var label:UILabel

        if let v = view as? UILabel
            label = v
        
        else
            label = UILabel()
        
        label.backgroundColor = component == 0 ? .red : .purple
        label.textColor = UIColor.white
        label.textAlignment = .left
        label.font = UIFont(name: "Helvetica", size: 16)

        label.text = arrayOfCountries[row]

        return label
    

对于不同的背景,试试这个逻辑,它会起作用&要禁用特定组件,请遵循以下答案

Swift UIPickerView disable component

【讨论】:

谢谢。它确实有效,但适用于所有人。我只想设置一个特定的行,可以吗?

以上是关于设置 UIPickerView 行的背景颜色的主要内容,如果未能解决你的问题,请参考以下文章

在 Swift 中为选定的 UIPickerView 行设置动画背景颜色

iOS 14 UIPickerView 所选行的颜色

如何更改 UIPickerView 中选定行的颜色

如何更改 UIPickerView 中选定行的颜色

如何根据位置更改 UIPickerView 标题文本颜色

如何更改 UIPickerView 中的背景颜色?