voglio creare allegati visualizzare, che luoghi sotto ingresso vista accessorio, sopra la tastiera, come in Skype App o Viber:Visualizza UIView con i tasti sopra la tastiera, come Skype, i messaggeri Viber (Swift, iOS)
ho già chiesto questa domanda here, ma ha suggerito una soluzione per questa domanda non era così elegante, perché quando ho trascino la mia vista di scorrimento verso l'alto, voglio il mio attaccamento UIView spostare verso il basso con la tastiera (io uso UIScrollViewKeyboardDismissModeInteractive).
Così creo una funzione, che trovano la vista, dove si trovano la tastiera e il mio personalizzato vista accessorio ingresso:
func findKeyboardView() -> UIView? {
var result: UIView? = nil
let windows = UIApplication.sharedApplication().windows
for window in windows {
if window.description.hasPrefix("<UITextEffectsWindow") {
for subview in window.subviews {
if subview.description.hasPrefix("<UIInputSetContainerView") {
for sv in subview.subviews {
if sv.description.hasPrefix("<UIInputSetHostView") {
result = sv as? UIView
break
}
}
break
}
}
break
}
}
return result
}
E dopo che aggiungo una mia abitudine UIView e creare alcuni vincoli:
func createAttachView() {
attach = MessageChatAttachmentsView(frame: CGRectZero)
let newView = findKeyboardView()
newView!.addSubview(attach!)
newView!.addConstraint(NSLayoutConstraint(item: accessoryView, attribute: .Bottom, relatedBy: .Equal, toItem: attach!, attribute: .Top, multiplier: 1.0, constant: 0.0))
attach!.addConstraint(NSLayoutConstraint(item: attach!, attribute: .Height, relatedBy: .Equal, toItem: nil, attribute: .NotAnAttribute, multiplier: 1.0, constant: 260))
attach!.addConstraint(NSLayoutConstraint(item: attach!, attribute: .Width, relatedBy: .Equal, toItem: nil, attribute: .NotAnAttribute, multiplier: 1.0, constant: 320))
}
questo argomento Crea UIView personalizzato in ingresso vista accessorio e al di sopra della tastiera, e si muove quando ho scorrere verso l'alto. Ma quando voglio premere il pulsante, premo un tasto sulla tastiera.
Così come posso spostare questo punto di vista al vertice della gerarchia vista in UIInputSetHostView?
Penso che dovresti scambiare un nuovo 'inputView' e ricaricare le visualizzazioni di input. https://developer.apple.com/library/ios/documentation/StringsTextFonts/Conceptual/TextAndWebiPhoneOS/InputViews/InputViews.html –