2016-03-22 15 views
0

screenShot when keyboard is appear Image wheh keyboard is not presentImage of the storyboar : のUITableViewセルの表示の問題

私はスーパーへのUITableView、その上部と底部までの距離を持っているキーボードは、キーボードがテーブルを隠すないように、私は、下の制約を更新表示された場合は0 です。しかし、下部の制約を更新すると、最後の2つまたは3つのセルは完全には見えません。私は下の制約を更新するために次のコードを使用しています。

func keyboardWillChangeFrameWithNotification(notification: NSNotification, showsKeyboard: Bool) { 
let userInfo = notification.userInfo! 
    let animationDuration: NSTimeInterval = (userInfo[UIKeyboardAnimationDurationUserInfoKey] as! NSNumber).doubleValue 

    // Convert the keyboard frame from screen to view coordinates. 
    let keyboardScreenBeginFrame = (userInfo[UIKeyboardFrameBeginUserInfoKey] as! NSValue).CGRectValue() 

    if showsKeyboard 
    { 
     cntInputViewBottom.constant = keyboardScreenBeginFrame.size.height 

    } 
    else 
    { 
     cntInputViewBottom.constant = 0 
    } 
} 
+0

こんにちは、Aashish、それが隠されている場合は、ストーリーボードとシミュレータのスクリーンショットの写真を追加できますか? –

+0

送信を伴うビューは右下にありますので、その高さを制約に追加して試す必要があります。 –

+0

オプション1:カスタム入力ビューの高さも控除する必要があります。オプション2:カスタム入力ビューをViewControllerの入力アクセサリビューとして追加すると、自動的に管理されます。 –

答えて

0

UIKeyboardFrameBeginUserInfoKeyを使用しています。これは、フレーム変更アニメーションの開始時のキーボードのサイズです。最終フレームを取得するには、UIKeyboardFrameEndUserInfoKeyをよく使うべきです。

+0

キーボードの高さはどちらの場合も同じになります。 yの位置だけが変化します。だから、何かが理想的に働くはずです。 –

+0

Yポジションは**問題ありません。 – kelin

0

xが送信ボタン付きビューの高さである場合。

if showsKeyboard 
{ 
    cntInputViewBottom.constant = keyboardScreenBeginFrame.size.height+ x 

} 
else 
{ 
    cntInputViewBottom.constant = x 
} 
0

問題前後の制約を更新するようにビュー/コントローラに通知していないという問題があります。

if showsKeyboard 
{ 
    self.view.layoutIfNeeded() 
    cntInputViewBottom.constant = keyboardScreenBeginFrame.size.height 
    self.view.layoutIfNeeded() 
} 
else 
{ 
    self.view.layoutIfNeeded() 
    cntInputViewBottom.constant = 0 
    self.view.layoutIfNeeded()  
} 

だけ表示されているように制約を更新した後&前self.view.layoutIfNeeded()を追加します。

関連する問題