次のfuncを使用してフォントの色とフォントサイズを変更します。色は機能しますが、フォント名とフォントサイズが機能しません。
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()])
何か助け?
THX。
私はあなたのために役立つかもしれない別のオプションがあります。
通常のピッカービューに必要なすべての作業を行います。詳細については UIPickerView make in Swift iOS)
次に、この手順に従います。-viewForRowのメソッドを使用できます
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
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
}
それはあなたの助けになるかもしれませんが、私はこれを私のプロジェクトでも使用しました。
Pickerviewのデータソースを宣言できます
let arrDataSource:[String] = ["row 1","row 2","row 3"]
次に、この文字列の配列を関数の下の行のタイトルとして使用します
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
}
スイフト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
明らかに、自分のフォントを選択できますが、ここでは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
}
https://stackoverflow.com/users/4020910/bennythenerd UILabelでさらに詳しく説明するには、ラベルを再利用するメモリ最適化ソリューションをもう少し使用します。
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
}