2012-03-07 15 views
0

私は何かと戦うので、私は馬鹿のように感じますが、それは非常に厳密にすべきですが、私のXcodeにはどこかに隠れたsabouteurがあります。古典的なデザインとUIScrollViewの簡単な問題

UIはStoryBoardに組み込まれています。

私は上のUINavigationBarとUIScrollViewを含むモーダルビューを持っています...スクロールビュー内にはいくつかのテキストフィールドがあります。 私は、テキストフィールドのテキストを編集し始めると、キーボードが飛び出すことを理解しています。それで大丈夫です。私はその瞬間をNotificationCenter経由で追跡しています。

[notificationCenter addObserver:self selector:@selector(keyboardDidShow:) name:UIKeyboardDidShowNotification object:nil]; 

私はもちろん

-(void)keyboardDidShow:(NSNotification *)notification 
    { 
    ... code changing the frame 
    } 

を発生したとき、私はできるだけ早く私は、新しく作成されたCGRect「フレームを付けるなど、キーボードのための余地を作るためにscrollviewのサイズを変更する必要がありますが、セレクタを呼び出しています"スクロールビューのフレームの値ですが、スクロールビューは自分の望む通りにはサイズ変更されませんが、vieconrollerのビューからステータスバーの44ピクセルを引いたサイズを引いた値になります..

私はこれで数時間を失い、手伝ってくれますか?

+0

新しいフレームを設定したコードを表示してください... – calimarkus

+0

私は動きの秒です。フレームを変更するコードを投稿しますか?のUIScrollViewの。また、UIView内のスクロールビューですか、それともコントローラのメインビューですか? –

答えて

1

まず、スクロールビューのフレームを変更する必要がありますか?キーボードはとにかくすべての上に現れます。おそらく、編集BTWをキャッチするもっと便利な方法は、UITextFieldDelegateプロトコルですが、あなたのやり方もうまくいきます。

第2:ビューコントローラのviewプロパティであるビューを変更する場合、フレームを変更することはできません。デフォルトでは、フルスクリーン(マイナスステータスバー、ナビゲーションバーを除いたもの)です。ビューのサイズを動的に変更する場合は、サブビューはself.viewでなければなりません。

+0

iPhone上のiOS5のカレンダーに新しいイベントを追加すると表示されるモーダルビューと同じ動作が必要です。私のモーダルビューには、物理​​的な画面が同時に表示できるよりも多くのテキストフィールドがあります。 –

+0

したがって、単純なグループ化テーブルビューを使用して、それをモーダルで表示してください。私はまだあなたがフレームを変えたい理由は分かりません。多分あなたは 'contentOffset'を意味するでしょうか? – Mundi

関連する問題