1

カスタムuitableviewcellを使用したuitableviewがあります。キーボードを非表示にするには、ユーザーは上下にスクロールする必要があります。このメソッドを実装することでこれに到達します

- (void)scrollViewWillBeginDragging:(UIScrollView *)scrollView
{
    if (_isEnableHide) {
        [self resignFirstResponderForVisibleCells];
    }
}

だが

セルを選択してキーボードをオンにすると、スクロールしようとしますが、奇妙な動作が始まります。キーボードが消えてスクロールが停止した後、スクロールを開始します。

ここに画像の説明を入力してください

キーボードで見下ろしたいです。

このようなアニメーションで手動でやってみます

....
 tableView.contentInset = UIEdgeInsetsZero;
 tableView.scrollIndicatorInsets = UIEdgeInsetsZero;
.....

ただし、テーブルビューをスクロールすると、テーブルビューが下に停止し、テーブルビューのインセットが負のKEYBOARHEIGHTになります。テーブルビューとキーボードを一緒に下にスクロールする方法、またはスクロールが停止した後に自動下に移動して手動で移動をキャンセルする方法。

4

1 に答える 1

-1

self.tableView.scrollEnabledをNoに設定し、キーボードが消えた後にYESに変更することで、この問題を解決しました。ただし、その後は適切なスクロールが行われません。これを解決するために、tableViewを手動でスクロールします

CGRect rect = self.frame;
if (isDown) {
  rect.origin.y +=someDistance;
}else{
  rect.origin.y -= someDistance;
}
[tableView scrollRectToVisible:rect animated:YES];
于 2012-06-30T16:08:38.597 に答える