Warning: file_get_contents(/data/phpspider/zhask/data//catemap/8/swift/17.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Swift UIPickerView:viewForRow未调用_Swift_Uipickerview - Fatal编程技术网

Swift UIPickerView:viewForRow未调用

Swift UIPickerView:viewForRow未调用,swift,uipickerview,Swift,Uipickerview,我在设置UIPickerView时遇到问题。我已将其全部设置为教科书,我想更改字体大小,但是: 通过AttributedTitleFrorrow更改字体大小没有效果(尽管更改颜色确实有效) viewForRow从未被调用。一点也不 我使用的是Xcode 8和Swift 2.3,目标是iOS8+。以下是所有相关的代码位: (IB)连接: @IBOutlet weak var synapse: UIPickerView! 链接到UIViewController的代理: override func

我在设置UIPickerView时遇到问题。我已将其全部设置为教科书,我想更改字体大小,但是:

  • 通过AttributedTitleFrorrow更改字体大小没有效果(尽管更改颜色确实有效)

  • viewForRow从未被调用。一点也不

  • 我使用的是Xcode 8和Swift 2.3,目标是iOS8+。以下是所有相关的代码位:

    (IB)连接:

    @IBOutlet weak var synapse: UIPickerView!
    
    链接到UIViewController的代理:

    override func viewDidLoad() {
        super.viewDidLoad()
    
        // Préparation des gestionnaires de transition vers les différentes vues
        self.transitionManagerNav.sourceViewController = self
        self.transitionManagerNav.ordre = "travailleini2barrenav"
    
        self.transitionManagerDesk.sourceViewController = self
        self.transitionManagerDesk.ordre = "travailleini2desk"
    
        self.synapse.dataSource = self
        self.synapse.delegate = self
    
        dateEnCours = graphique.pointDeReference.dateComplete
    }
    
    代表执行:

    // UIPICKERVIEWDELEGATE
    
    func numberOfComponentsInPickerView(pickerView: UIPickerView) -> Int {
        return 1
    }
    
    func pickerView(pickerView: UIPickerView, numberOfRowsInComponent component: Int) -> Int {
        return elementsDefileur.count
    }
    
    func pickerView(pickerView: UIPickerView, rowHeightForComponent component: Int) -> CGFloat {
        return 17
    }
    
    func pickerView(pickerView: UIPickerView, widthForComponent component: Int) -> CGFloat {
        return synapse.frame.width
    }
    
    func pickerView(pickerView: UIPickerView, didSelectRow row: Int, inComponent component: Int) {
    }
    
    func pickerView(pickerView: UIPickerView, viewForRow row: Int, forComponent component: Int, reusing view: UIView?) -> UIView {
        print("[viewForRow]") // THAT never happens (and yes, I am looking at the correct output window :o)
        let pickerLabel = UILabel()
        pickerLabel.textColor = UIColor.redColor()
        pickerLabel.text = elementsDefileur[row]
        pickerLabel.font = UIFont(name: "Arial-BoldMT", size: 5)
        pickerLabel.textAlignment = NSTextAlignment.Left
        return pickerLabel
    }
    
    我已经尝试了我所能想到的一切,包括从代码中删除并重新创建UIPickerView,然后从(IB)中删除并重新创建UIPickerView,将代理链接移动到ViewWillExeal中,titleForRow/attributedTitleForRow/viewForRow的每一个组合,清理项目,等等


    如何解决此问题?

    委托函数声明中的属性名称错误。它应该是“重用视图”,而不是“重用视图”:

    func pickerView(pickerView: UIPickerView, viewForRow row: Int, forComponent component: Int, reusingView view: UIView?) -> UIView
    

    我相信苹果的文档包含了这个错误。我也遇到了同样的问题,并通过如上所述修复属性名来修复它。

    在类名之后是否包含UIPickerViewDeleteGate?(猜测名称,假设其正确。)例如类myViewController:UIViewController,UIPickerViewDeleteGate是的(很抱歉忘记了):类TravaileViewController:UIViewController,UIPickerViewDataSource,UIPickerViewDeleteGate{不,没问题。这是我最好的猜测,只要看一眼,大多数其他东西似乎都没问题。打印
    elementsDefileur。数一数
    看看里面有多少东西。非常感谢,蒂姆,你救了我一天!(很抱歉反馈太晚)