2012-02-28 4 views
0

私のアプリでは、いくつかのカスタムセルを持つUITableViewがあり、UITextFieldを配置しているものがあります。そのUITextFieldは時には問題であるキーボードをブロックしてしまいます。だから私の状況では、私のための問題だった特定のセルにスクロールするのではなく、テーブル全体を移動しようとしています。UITableFieldをスクロールすると、セル内のUITextFieldが表示されますか?

とにかくこのように問題が発生しています。

とにかくこれは、テキストフィールドの表示方法と終了方法のコードです。問題は、UITableViewが決して適切な量を移動しないことです。私は、UITextFieldが現在呼び出されているセルがキーボードのすぐ上にあるように、UITableviewを十分に動かそうとしています。 時には、それは私がセルを見ることができないか、またはテーブルビュー全体が私が全く見ない狂った量を動かすことができないほど上にスクロールアップします。

とにかくここに私のコードはありますが、誰かが間違って見えるのですか?

- (BOOL)textFieldShouldBeginEditing:(UITextField *)thetextField { 
    CustomCell *cell = (CustomCell*)[[thetextField superview] superview]; 
    CGRect cellRect = [cell convertRect:cell.frame toView:self.view]; 
    float bottomCell = cellRect.origin.y - cellRect.size.height; 
    if (bottomCell >= keyboardY) { 
     subtractionAmount = keyboardY - bottomCell; 
     didMove = YES; 
     [UIView animateWithDuration:0.4 
         animations:^{ 
          thetableView.center = CGPointMake(thetableView.center.x, thetableView.center.y + subtractionAmount); 
         }]; 
    } 
    return YES; 
} 

-(BOOL) textFieldShouldReturn:(UITextField *)thetextField { 
    if (didMove) { 
     didMove = NO; 
     [UIView animateWithDuration:0.4 
         animations:^{ 
          thetableView.center = CGPointMake(thetableView.center.x, thetableView.center.y - subtractionAmount); 
         }]; 
    } 

ありがとうございます!

答えて

0

問題が正しく表示されない場合は、その問題が1か月前に発生しました。私のシナリオは次のとおりです:UITableViewUITextFieldの場合、UITableViewControllerなし。

次のチュートリアルで問題を修正しました:sliding-uitextfields-around-to-avoid

希望します。

+0

私はこのチュートリアルからすべてをやっていますが、ちょっと違うので、なぜ上のコードが完全に機能しないのか不思議です。 –

関連する問題