如何在选择器视图中更改字体大小?我已经阅读了很多关于这方面的问题,但没有一个在
Swift 3中.我有三个选择器视图;前两个有两列,并具有相同的数据源和委托.最后一个列有一列,并具有不同的数据源和委托.我无法通过一个字符在前两个选择器视图中插入文本.如有必要,如何缩小UIPickerView中的字体大小并调整选择器视图行高?谢谢.
class ViewController: UIViewController {
//MARK: Properties
@IBOutlet weak var layoutLengthPicker: UIPickerView!
@IBOutlet weak var layoutWidthPicker: UIPickerView!
@IBOutlet weak var trackPicker: UIPickerView!
let layoutLengthPickerDelegate = DimensionsPickerDelegate()
let layoutWidthPickerDelegate = DimensionsPickerDelegate()
let trackPickerDelegate = TrackPickerDelegate()
override func viewDidLoad() {
super.viewDidLoad()
layoutLengthPicker.delegate = layoutLengthPickerDelegate
layoutLengthPicker.dataSource = layoutLengthPickerDelegate
layoutWidthPicker.delegate = layoutWidthPickerDelegate
layoutWidthPicker.dataSource = layoutWidthPickerDelegate
trackPicker.delegate = trackPickerDelegate
trackPicker.dataSource = trackPickerDelegate
// Do any additional setup after loading the view,typically from a nib.
}
//MARK: Actions
override func didReceiveMemoryWarning() {
super.didReceiveMemoryWarning()
// dispose of any resources that can be recreated.
}
}
class DimensionsPickerDelegate: NSObject,UIPickerViewDataSource,UIPickerViewDelegate {
let feet = ["0 Ft.","1 Ft.","2 Ft.","3 Ft.","4 Ft.","5 Ft.","6 Ft.","7 Ft.","8 Ft.","9 Ft.","10 Ft.","11 Ft.","12 Ft.","13 Ft.","14 Ft.","15 Ft.","16 Ft.","17 Ft.","18 Ft.","19 Ft.","20 Ft.","21 Ft.","22 Ft.","23 Ft.","24 Ft.","25 Ft.","26 Ft.","27 Ft.","28 Ft.","29 Ft.","30 Ft.","31 Ft.","32 Ft.","33 Ft.","34 Ft.","35 Ft.","36 Ft.","37 Ft.","38 Ft.","39 Ft.","40 Ft.","41 Ft.","42 Ft.","43 Ft.","44 Ft.","45 Ft.","46 Ft.","47 Ft.","48 Ft.","49 Ft.","50 Ft.","51 Ft.","52 Ft.","53 Ft.","54 Ft.","55 Ft.","56 Ft.","57 Ft.","58 Ft.","59 Ft.","60 Ft.","61 Ft.","62 Ft.","63 Ft.","64 Ft.","65 Ft.","66 Ft.","67 Ft.","68 Ft.","69 Ft.","70 Ft.","71 Ft.","72 Ft.","73 Ft.","74 Ft.","75 Ft.","76 Ft.","77 Ft.","78 Ft.","79 Ft.","80 Ft.","81 Ft.","82 Ft.","83 Ft.","84 Ft.","85 Ft.","86 Ft.","87 Ft.","88 Ft.","89 Ft.","90 Ft.","91 Ft.","92 Ft.","93 Ft.","94 Ft.","95 Ft.","96 Ft.","97 Ft.","98 Ft.","99 Ft.","100 Ft."]
let inches = ["0 In.","1 In.","2 In.","3 In.","4 In.","5 In.","6 In.","7 In.","8 In.","9 In.","10 In.","11 In.","12 In."]
func numberOfComponents(in pickerView: UIPickerView) -> Int {
return 2
}
func pickerView(_ pickerView: UIPickerView,numberOfRowsInComponent component: Int) -> Int {
if component == 0 { return feet.count } else { return inches.count}
}
func pickerView(_ pickerView: UIPickerView,titleForRow row: Int,forComponent component: Int) -> String? {
if component == 0 {return feet[row]} else {return inches[row]}
}
}
class TrackPickerDelegate: NSObject,UIPickerViewDelegate {
let manufacturers = ["Atlas True Track","Atlas Code 100","Atlas Code 83","Bachmann Nickel Silver","Bachmann Steel Alloy","Kato","Life-Like Trains Code 100","LIfe-Like Trains Power-Loc","Peco Code 100","Peco Code 83","Peco Code 75","Shinohara Code 100","Shinohara Code 70","Walthers"]
func numberOfComponents(in pickerView: UIPickerView) -> Int {
return 1
}
func pickerView(_ pickerView: UIPickerView,numberOfRowsInComponent component: Int) -> Int {
return manufacturers.count
}
func pickerView(_ pickerView: UIPickerView,forComponent component: Int) -> String? {
return manufacturers[row]
}
}
解决方法
试试这个Swift 3.x:
填写您的字体名称,颜色,大小&具有适当值的数据数组.
func pickerView(_ pickerView: UIPickerView,viewForRow row: Int,forComponent component: Int,reusing view: UIView?) -> UIView {
var pickerLabel: UILabel? = (view as? UILabel)
if pickerLabel == nil {
pickerLabel = UILabel()
pickerLabel?.font = UIFont(name: "<Your Font Name>",size: <Font Size>)
pickerLabel?.textAlignment = .center
}
pickerLabel?.text = <Data Array>[row]
pickerLabel?.textColor = UIColor.blue
return pickerLabel!
}
编辑:
对于多个组件,您可以执行以下操作:
if component == 0 {
var label: UILabel? = (view as? UILabel)
label.text = <Your Arr>[row]
return label
}else {
return anotherLabel
}
输出:
希望能帮助到你!!!