iOS 14 中 UIPickerView 的背景颜色

问题描述

UIPicker 上的背景似乎在 iOS 14 中发生了变化。我试图让它看起来与 iOS 13 中的一样,但我无法做到。以下是我现有的代码

func pickerView(_ pickerView: UIPickerView,viewForRow row: Int,forComponent component: Int,reusing view: UIView?) -> UIView {
    let pickerLabel = UIButton()
    let attributesForSelectedRow = [NSAttributedString.Key.font: UIFont.systemFont(ofSize: 16,weight: .bold),NSAttributedString.Key.foregroundColor: UIColor.blue(),NSAttributedString.Key.backgroundColor: UIColor(rgb: 0xE5E5E5)]
            
    let attrTitle = NSMutableAttributedString(string: text,attributes: attributesForSelectedRow)
    pickerLabel.setAttributedTitle(attrTitle,for: .normal)
    pickerLabel.backgroundColor = UIColor(rgb: 0xE5E5E5)
    pickerLabel.contentHorizontalAlignment = .center
    return pickerLabel
}

我尝试过的解决方案:

func pickerView(_ pickerView: UIPickerView,reusing view: UIView?) -> UIView {
        
    let pickerLabel = UIButton.init(frame: CGRect(x: 0,y: 0,width: pickerView.frame.width,height: 36))

    if #available(iOS 14.0,*)
    {
       pickerView.subviews[safe:1]?.backgroundColor = UIColor.clear
    }
    
    let attributesForSelectedRow = [NSAttributedString.Key.font: UIFont.systemFont(ofSize: 16,NSAttributedString.Key.backgroundColor: UIColor(rgb: 0xE5E5E5)]
            
    let attrTitle = NSMutableAttributedString(string: “M1”,for: .normal)
    pickerLabel.backgroundColor = UIColor(rgb: 0xE5E5E5)

    pickerLabel.contentHorizontalAlignment = .center
        
    return pickerLabel
}

我的解决方案的背景颜色看起来不错,但它不像 iOS 13 中那样采用 pickerview 的宽度。如何使灰色背景的宽度与选择器视图的宽度相同?

解决方法

暂无找到可以解决该程序问题的有效方法,小编努力寻找整理中!

如果你已经找到好的解决方法,欢迎将解决方案带上本链接一起发送给小编。

小编邮箱:dio#foxmail.com (将#修改为@)