2

私は a を持っておりUITableView、そのUITableViewCells は関数を介して個別にサイズを変更できますtableView:heightForRowAtIndexPathUIImageさまざまなサイズのを格納します。画像をタップすると、キーボードが表示されます(画像にタグを付けるためだとしましょう)。

たとえば、全高が画面サイズよりも1 ピクセル小さい3 つのセル (画像) がある場合は、すべて問題ありません。キーボードが表示され、スクロールしてすべてのセル (画像) を表示できます。

しかし、もう1つ追加して、合計サイズを画面より大きくすると、すべてが壊れます。キーボードが表示されているようです (上部に追加のボタンがあり、表示されている元のキーボードよりも数ピクセル高くなります)。しかし、私は何も書くことができません。キーボードの上部にあるボタンは、キーボードを辞任するためのものであり、機能しません。それはちょっと立ち往生しています。

プロジェクトはここからダウンロードできます: https://github.com/TokyoBirdy/cecilia/tree/master/Test (乱雑なコードを許してください)

4

1 に答える 1

0

ビューの原点を編集するコードを削除することで、ロックされたスクロールの問題を解決できました。さらに、計算で tableview の 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];
    }
}
于 2013-10-06T05:59:35.540 に答える