質問

私は、テーブルビューの下部にあるテーブルセル内UITextViewを実装しようとしています。

私は、ここでの提案を試してみたテキストフィールドが選択されている場合のUITableViewのスクロールを作る、および、他のソリューションが、私は人為的にキーボードのためのスペースを作成するために、現在のビューに余分な高さを追加する必要があるため、彼らは少し異なっている。

ここで私はそれが私のアプリに移植するために、前の溶液に加えるものです。

-(void) keyboardWillShow:(NSNotification *)note {
      CGRect frame = self.view.frame;
      frame.size.height += keyboardHeight;
      frame.origin.y -= keyboardHeight;
        self.view.frame = frame;
}

-(void) keyboardWillHide:(NSNotification *)note
{
        CGRect frame = self.view.frame;
        frame.size.height -= keyboardHeight;
    frame.origin.y += keyboardHeight;

}

この操作を行うと、正しく表示に高さを追加し、セルにスクロールしますが、元のビューの高さを復元した後、現在の可視のビューを超えてスクロールすることは不可能となり、境界の外側に有効なコンテンツがあっても(私が表示されますスクロールバーが戻ってバウンスする前に、テキストビュー)。
私はkeyboardWillShowでテーブルビューのフレームや境界(ないビュー)を保存し、keyboardWillHideにそれらを復元しようとすると、スクロールが復元されますが、ビューは半分にカットされます。

のほか、ビューの一番下に追加の高さをハードコーディングこれまでいかなる救済策はありますか?

役に立ちましたか?

解決

私は、ビューの原点を編集コードを除去することにより、ロックされたスクロールの私の問題を解決することができました。また、私は私の計算ではテーブルビューのcontentSizeプロパティを使用して、一番下のセルにスクロール実装しました。

-(void) keyboardWillShow:(NSNotification *)note
{

  if(!isKeyboardShowing)
    {
    isKeyboardShowing = YES;
    CGRect keyboardBounds;
    [[note.userInfo valueForKey:UIKeyboardBoundsUserInfoKey] getValue: &keyboardBounds];
    CGFloat keyboardHeight = keyboardBounds.size.height;

            CGRect frame = self.view.frame;
            frame.size.height += keyboardHeight;
            self.view.frame = frame;

    CGPoint scrollPoint = frame.origin;
    scrollPoint.y += _tableView.contentSize.height - keyboardHeight;
    [_tableView setContentOffset:scrollPoint animated:YES];
    }
}
ライセンス: CC-BY-SA帰属
所属していません StackOverflow
scroll top