J'utilise la fonction suivante pour changer la couleur et la taille de la police. La couleur fonctionne, mais le nom et la taille de la police refusent de fonctionner.
func pickerView(pickerView: UIPickerView, attributedTitleForRow row: Int, forComponent component: Int) -> NSAttributedString?
var myTitle = NSAttributedString(string: titleData, attributes: [NSFontAttributeName:UIFont(name: "Arial-BoldMT", size: 45)!, NSForegroundColorAttributeName:UIColor.whiteColor()])
de l'aide?
THX.
J'ai une autre option peut-être utile pour vous ..
Effectuez tous les travaux nécessitant une vue normale du sélecteur: pour plus d’aide UIPickerView crée dans Swift iOS
Suivez maintenant cette étape: - vous pouvez utiliser la méthode de viewForRow comme ceci
func pickerView(pickerView: UIPickerView, viewForRow row: Int, forComponent component: Int, reusingView view: UIView!) -> UIView
{
var pickerLabel = UILabel()
pickerLabel.textColor = UIColor.blackColor()
pickerLabel.text = "PickerView Cell Title"
// pickerLabel.font = UIFont(name: pickerLabel.font.fontName, size: 15)
pickerLabel.font = UIFont(name: "Arial-BoldMT", size: 15) // In this use your custom font
pickerLabel.textAlignment = NSTextAlignment.Center
return pickerLabel
}
Swift 3 mis à jour
func pickerView(pickerView: UIPickerView, viewForRow row: Int, forComponent component: Int, reusingView view: UIView!) -> UIView
{
let pickerLabel = UILabel()
pickerLabel.textColor = UIColor.black
pickerLabel.text = "PickerView Cell Title"
// pickerLabel.font = UIFont(name: pickerLabel.font.fontName, size: 15)
pickerLabel.font = UIFont(name: "Arial-BoldMT", size: 15) // In this use your custom font
pickerLabel.textAlignment = NSTextAlignment.center
return pickerLabel
}
Que ce soit une aide complète pour vous, je l’ai aussi utilisée dans mon projet.
Vous pouvez déclarer la source de données pour pickerview
let arrDataSource:[String] = ["row 1","row 2","row 3"]
puis utilisez ce tableau de chaîne comme titre pour la ligne dans la fonction ci-dessous
func pickerView(pickerView: UIPickerView, viewForRow row: Int, forComponent component: Int, reusingView view: UIView!) -> UIView
{
let pickerLabel = UILabel()
pickerLabel.textColor = UIColor.blackColor()
pickerLabel.text = arrDataSource[row]
pickerLabel.font = UIFont(name: pickerLabel.font.fontName, size: 15)
//pickerLabel.font = UIFont(name: "Arial-BoldMT", size: 15) // In this use your custom font
pickerLabel.textAlignment = NSTextAlignment.Center
return pickerLabel
}
Swift 3
func pickerView(_ pickerView: UIPickerView, viewForRow row: Int, forComponent component: Int, reusing view: UIView?) -> UIView {
var string = ""
let pickerLabel = UILabel()
pickerLabel.textColor = UIColor.white
pickerLabel.text = string
pickerLabel.font = UIFont(name: "Rubik-Regular", size: 22) // In this use your custom font
pickerLabel.textAlignment = .center
return pickerLabel
}
Swift 4.1/Xcode 9.4.1
Évidemment, vous pouvez sélectionner votre propre police, mais ici, j'utilise System Bold 13.
func pickerView(_ pickerView: UIPickerView, viewForRow row: Int, forComponent component: Int, reusing view: UIView?) -> UIView {
let pickerLabel = UILabel()
pickerLabel.font = UIFont.boldSystemFont(ofSize: 13)
pickerLabel.textColor = UIColor.black
pickerLabel.textAlignment = .center
pickerLabel.text = "PickerView Cell Title"
return pickerLabel
}
Pour plus de détails sur https://stackoverflow.com/users/4020910/bennythenerd répondre avec UILabel, je voudrais utiliser un peu plus de solution optimisée pour la mémoire qui réutilise les étiquettes:
func pickerView(_ pickerView: UIPickerView, viewForRow row: Int, forComponent component: Int, reusing view: UIView?) -> UIView {
let pickerLabel: UILabel
if let label = view as? UILabel {
pickerLabel = label
} else {
pickerLabel = UILabel()
pickerLabel.font = UIFont(name: "Rubik-Regular", size: 22)
pickerLabel.textAlignment = .center
}
pickerLabel.text = pickerData[row] //This is your string
return pickerLabel
}