2014-12-28 2 views
0
func keyboardWillShow(notification: NSNotification) { 
    let userInfo = notification.userInfo as NSDictionary! 
    let frameNew = (userInfo[UIKeyboardFrameEndUserInfoKey] as NSValue).CGRectValue() 
    let insetNewBottom = tableView.convertRect(frameNew, fromView: nil).height 
    let insetOld = tableView.contentInset 
    let insetChange = insetNewBottom - insetOld.bottom 
    let overflow = tableView.contentSize.height - (tableView.frame.height-insetOld.top-insetOld.bottom) 

    let duration = (userInfo[UIKeyboardAnimationDurationUserInfoKey] as NSNumber).doubleValue 
    let animations: (() -> Void) = { 
     if !(self.tableView.tracking || self.tableView.decelerating) { 
      // Move content with keyboard 
      if overflow > 0 {     // scrollable before 
       self.tableView.contentOffset.y += insetChange 
       if self.tableView.contentOffset.y < -insetOld.top { 
        self.tableView.contentOffset.y = -insetOld.top 
       } 
      } else if insetChange > -overflow { // scrollable after 
       self.tableView.contentOffset.y += insetChange + overflow 
      } 
     } 
    } 
    if duration > 0 { 
     let options = UIViewAnimationOptions(UInt((userInfo[UIKeyboardAnimationCurveUserInfoKey] as NSNumber).integerValue << 16)) // http://stackoverflow.com/a/18873820/242933 
     UIView.animateWithDuration(duration, delay: 0, options: options, animations: animations, completion: nil) 
    } else { 
     animations() 
    } 
} 

У меня есть панель инструментов, и когда отображается текстовое изображение на панели инструментов, под ней появляется клавиатура. Панель инструментов затем скользит вверх, но только над клавиатурой, но она все еще скрывается под новой функцией предложений над клавиатурой в одном из последних обновлений iOS.Насколько высока идея слова над клавиатурой?

Как я могу убедиться, что панель инструментов остается над предложением слова?

+0

Почему бы не использовать дополнительный вид? – soulshined

+0

Потому что это: http://stackoverflow.com/questions/27664129/constraint-controls-greyed-out-in-xcode-pinning-toolbar-to-bottom/27664304#27664304 – user83039

+1

Я не понимаю. Этот вопрос относится к табличным представлениям. Вам просто нужна панель инструментов поверх клавиатуры. Это называется видом аксессуара входа. Он обрабатывает все анимации для вас, и вы можете поместить все, что хотите, почти https://www.google.com/search?q=ios+inputaccessoryview&ie=UTF-8&oe=UTF-8&hl=ru&client=safari – soulshined

ответ

1

Вы можете скрыть слова Предложений по TEXTVIEW.autocorrectionType = UITextAutocorrectionType.No

Или

Используйте входной вид аксессуара следующим образом: TEXTVIEW.inputAccessoryView = ваш пользовательский вид; поэтому вам не нужно знать высоту панели инструментов предложений, создать свое представление, а TEXTVIEW.inputAccessoryView автоматически разместит его над предложениями

Смежные вопросы