2013-04-10 6 views
10

を示しているが、私の質問に対する答えを見つけることができなかったときに移動しません。設定のUIWebViewの内容は、キーボードが、私は十分な大きさの研究を行ってきた

テキストフィールドがあるwebViewがあるとします。それらのうちのいくつかは、キーボードが表示されたときにそのフィールドを非表示にするように、画面の下部に配置されています。キーボードが表示されたら、webViewの内容が表示され、そのフィールドが表示されます。問題は、私は、コンテンツを上にスライドしたくないくださいということです。

質問です:どのように私はwebviewのその機能を無効にする、または何らかの形でコンテンツがスクロールアップしていないことができます???。

おかげで、任意の助けいただければ幸いです。

答えて

0

私はthis classはあなたの問題を助けるべきだと思います。それは内容を上にスクロールするので、もしあなたが画面の下にテキストフィールドを持っていれば、それはキーボードの上に移動します。

+1

すみませんが、あなたは私の質問を理解していませんでした。私は自分のテキストフィールドをその場所に置いて、上に動かないようにしたい。 – Garnik

0

私は私のための解決策を見つけました。スクロールアップした後、もう一度スクロールします。

-(void)keyboardWillShow:(NSNotification*)aNotification{ 
NSDictionary* info = [aNotification userInfo]; 
float kbHeight = [[NSNumber numberWithFloat:[[info objectForKey:UIKeyboardFrameBeginUserInfoKey] CGRectValue].size.height]floatValue]; 
float kbWidth = [[NSNumber numberWithFloat:[[info objectForKey:UIKeyboardFrameBeginUserInfoKey] CGRectValue].size.width]floatValue]; 
BOOL keyboardIsVisible=[self UIKeyboardIsVisible]; 
//Check orientation and scroll down webview content by keyboard size 
if(kbWidth==[UIScreen mainScreen].bounds.size.width){ 
    if (!keyboardIsVisible) { 
     [[chatView scrollView] setContentOffset:CGPointMake(0, -kbHeight+10) animated:YES]; 
    } //If is landscape content scroll up is about 113 px so need to scroll down by 113 
}else if (kbHeight==[UIScreen mainScreen].bounds.size.height){ 
    if (!keyboardIsVisible) { 
     [[chatView scrollView] setContentOffset:CGPointMake(0, -113) animated:YES]; 
    } 
} 
} 

これはまさに私が尋ねたが、私の問題を解決するために私を助けたものではありません:それは [[NSNotificationCenter defaultCenter] addObserver:self selector:@selector(keyboardWillShow:) name:UIKeyboardWillShowNotification object:nil]; 、メソッドを実装するために まず私はオブザーバを追加することにより、通知UIKeyboardWillShowNotificationをキャッチ。

ありがとうございました。

16

フォームフィールド間を移動するときに自動スクロールを含むすべてのスクロールを無効にする場合は、webView.scrollView.scrollEnabled=NOを設定するとすべてが完全にカバーされません。これにより、通常のタップとドラッグのスクロールは停止しますが、Webフォームをナビゲートするときに自動的にフィールドをスクロールすることはできません。

また、キーボードがと表示されたときにがスクロールするのを防ぐことができますが、キーボードがすでに別のフォームフィールドを編集している場合は何も行いません。ここで

は、すべての3つの簡単なステップでのスクロールを防止する方法は次のとおりです。あなたがのUIWebViewを作成した後

1)を、通常のスクロールを無効にします。

myWebView.scrollView.scrollEnabled = NO; 

2)次にとしてあなたのビューコントローラを登録しますscrollViewのデリゲート:

(そしてすべてのスクロールイベントを)

3)コンパイラの警告を防ぐキャプチャし、元に戻すには、あなたのクラスの@interface定義に<UIScrollViewDelegate>を追加します。

// UIScrollViewDelegate method 
- (void)scrollViewDidScroll:(UIScrollView *)scrollView { 
    scrollView.bounds = myWebView.bounds; 
} 
+1

興味深い情報をありがとうが、それは実際には私はすでにJavascriptから解決しているということに加えて、実際には問題ではありません。 – Garnik

+2

私はそれがあなたの質問に対する確かに答えであることを発見しました。あなた自身の解決策を投稿することをお勧めします。 –

+0

このソリューションは私の場合を解決します。私はフレーズ "持ち込み視野スクロール" –

関連する問題