[英]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.