2017-09-19 6 views
1

je mis à jour mon projet J'ai un petit morceau InputText une vue d'entrée à l'aide d'un sélecteur j'ai ajouté un UIToolBar à InputText. Cela fonctionnait bien avant la mise à niveau. maintenant c'est comme le UIPickerView c'est sur le UIToolBar.UIPickerView sur UIToolbar - Swift 4 Erreur de mise à niveau

je peux voir, mais si je clique dessus est comme si je clique sur UIPickerView

Le UIToolBar qu'il fonctionne très bien, parce que si je mets la barre d'outils à un TextInput normal, il semble et bien travailler ..

Qu'est-ce que peut être?

Voici mon code:

var picker: UIPickerView 
picker = UIPickerView(frame: CGRect(x: 0, y: 200, width: view.frame.width, height: 300)) 
picker.backgroundColor = .white 

picker.showsSelectionIndicator = true 
picker.delegate = self 
picker.dataSource = PickerData as? UIPickerViewDataSource 


textField.inputView = picker 

let toolBar = UIToolbar() 
toolBar.barStyle = UIBarStyle.default 
toolBar.isTranslucent = true 
toolBar.tintColor = .blue 
toolBar.sizeToFit() 

let doneButton = UIBarButtonItem(title: "Seleziona", style: UIBarButtonItemStyle.plain, target: self, action: #selector(self.doneFunction(_:))) 
let spaceButton = UIBarButtonItem(barButtonSystemItem: UIBarButtonSystemItem.flexibleSpace, target: nil, action: nil) 
let cancelButton = UIBarButtonItem(title: "Annulla", style: UIBarButtonItemStyle.plain, target: self, action: #selector(self.doneFunction(_:))) 

toolBar.setItems([cancelButton, spaceButton, doneButton], animated: false) 
toolBar.isUserInteractionEnabled = true 

textField.inputAccessoryView = toolBar 

J'ai essayé aussi avec picker.addSubview(toolBar) mais Whit même résultat.

Répondre

0

J'ai eu le même problème et je l'ai résolu avec une vue en arrière-plan et en ajoutant 2 sous-vues sur le sélecteur et la barre d'outils. Voici le code:

let toolBar = UIToolbar() 
    toolBar.barStyle = UIBarStyle.default 
    toolBar.isTranslucent = true 
    toolBar.tintColor = green 
    toolBar.sizeToFit() 

    picker = UIPickerView(frame: CGRect(x: 0, y: toolBar.frame.size.height, width: view.frame.width, height: 300)) 
    picker.tintColor = green 
    picker.showsSelectionIndicator = true 
    picker.delegate = self 
    picker.dataSource = self 

    let bgView = UIView(frame: CGRect(x: 0, y: 200, width: view.frame.width, height: 300 + toolBar.frame.size.height)) 

    let doneButton = UIBarButtonItem(barButtonSystemItem: .done, target: self, action: #selector(nextPicker)) 
    let spaceButton = UIBarButtonItem(barButtonSystemItem: UIBarButtonSystemItem.flexibleSpace, target: nil, action: nil) 
    let cancelButton = UIBarButtonItem(barButtonSystemItem: .cancel, target: self, action: #selector(cancelPicker)) 
    toolBar.setItems([cancelButton, spaceButton, doneButton], animated: false) 
    toolBar.isUserInteractionEnabled = true 

    bgView.addSubview(picker) 
    bgView.addSubview(toolBar) 
    cell.textField.inputView = bgView 

Espérons que cela a aidé.

+0

merci c'est le travail parfaitement – Piedecess