簡體   English   中英

如何在Swift中更改UIPickerView組件的字體大小?

[英]How to change font size of UIPickerView component in Swift?

當我在attributedTitleForRow更改字體顏色和大小時,字體大小沒有變化,但是選定的行顏色卻發生了變化:

func pickerView(_ pickerView: UIPickerView, attributedTitleForRow row: Int, forComponent component: Int) -> NSAttributedString? {
        var color: UIColor!
        var size: UIFont!
                switch component {
        case 0:
            if pickerView.selectedRow(inComponent: 0) == row {
                color = UIColor.init(red: 186/255, green: 61/255, blue: 62/255, alpha: 1.0)
                size = UIFont(name:"Raleway", size:14)

            } else {
                color = UIColor.black
            }

            let attributes: [String: AnyObject] = [
                NSForegroundColorAttributeName: color, NSFontAttributeName: size]
            return NSAttributedString(string: peopleCount[row], attributes: attributes)
        default:
            return NSAttributedString()
        }
    }

當我在viewForRow方法中更改字體顏色和大小時,所有行顏色以及字體大小都會發生變化:

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

        var label = view as! UILabel!
        if label == nil {
            label = UILabel()
            label?.textColor = UIColor.red
        }
        switch component {
        case 0:

            label?.text = peopleCount[row]
            label?.font = UIFont(name:"Raleway", size:14)
            return label!
        default:
            return label!
        }

    }

所以,我的問題是,如何更改所有行的字體大小,但僅更改所選行的顏色? 如:

在此處輸入圖片說明

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

    var label = view as! UILabel!
    if label == nil {
        label = UILabel()
        label?.textAlignment = .center
        //label?.textColor = UIColor.red
    }
    switch component {
    case 0:

            label?.text = peopleCount[row]
            if(pickerView.selectedRow(inComponent: 0)==row){
            label?.textColor = UIColor.red
            }
            return label!

    default:
        return label!
    }

}

您可以像這樣編輯代碼,然后查看標簽顏色是否更改,您必須在下面添加此代碼。 這與點擊事件有關

    func pickerView(_ pickerView: UIPickerView, didSelectRow row: Int, inComponent component: Int) {
    pickerView.reloadAllComponents()

       }

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM