如何在选择器视图中更改字体大小?我已经阅读了很多关于这方面的问题,但没有一个在
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 }
输出:
希望能帮助到你!!!