Sto cercando di aggiungere un UIView
con il pulsante "Fine" come una vista accessi di input al campo di testo.Come aggiungere a livello di codice un InputAccessoryView con Autolayout?
let view = UIView()
let doneButton = UIButton(type: .Custom)
doneButton.setTitle("Done", forState: .Normal)
doneButton.translatesAutoresizingMaskIntoConstraints = false
view.addSubview(doneButton)
view.addConstraints(NSLayoutConstraint.constraintsWithVisualFormat("H:[button]-|", options: NSLayoutFormatOptions.DirectionLeadingToTrailing, metrics: nil, views: ["button":doneButton]))
view.addConstraints(NSLayoutConstraint.constraintsWithVisualFormat("V:|[button]|", options: NSLayoutFormatOptions.DirectionLeadingToTrailing, metrics: nil, views: ["button":doneButton]))
view.addConstraint(NSLayoutConstraint(item: view, attribute: NSLayoutAttribute.Height, relatedBy: NSLayoutRelation.Equal, toItem: doneButton, attribute: NSLayoutAttribute.Height, multiplier: 1, constant: 0)) // Even this does not work
self.emailTextField.inputAccessoryView = view
Ma comunque non riesco a vedere l'altezza viste stato impostato né i pulsanti Nella Gerarchia debugger/ispettore in Xcode.
Ma se aggiungo una vista impostando la sua cornice, posso vedere la vista che si sta aggiungendo. Inoltre ho provato a installare vincolo altezza forzatamente a una costante 21 e si è rotto alcuni altri vincoli che non avevo aggiunto _UIKBAutolayoutHeightConstraint
"<NSLayoutConstraint:0x7fa3c962be50 UIView:0x7fa3c963bf60.height == UIButton:0x7fa3c963c0d0.height + 21>",
"<NSLayoutConstraint:0x7fa3c95e0a90 '_UIKBAutolayoutHeightConstraint' V:[UIView:0x7fa3c963bf60(0)]>"
Uno affrontato questo problema prima?
Perché vuoi fare tasto e Impostazione vista nel codice? Potresti farlo nel builder dell'interfaccia. – Ramis
@Ramis Sto semplicemente facendo tutto in codice invece di creare viste. Quindi anche questo viene aggiunto a livello di programmazione. – user5381191