2016-08-25 5 views
0

存在しているとき、私はキーボードが存在するが、これは、このような結果時にビューを上に移動するには、このコードビューは、キーボードがiOSの

- (void)textFieldDidBeginEditing:(UITextField *)textField 
{ 
    NSLog(@"%f",self.view.frame.origin.y); 
    [UIView beginAnimations:nil context:NULL]; 
    [UIView setAnimationDuration:0.25f]; 
    CGRect frame = self.view.frame; 
    frame.origin.y =frame.origin.y -204; 
    [self.view setFrame:frame]; 
    [UIView commitAnimations]; 
} 


- (void)textFieldDidEndEditing:(UITextField *)textField 
{ 
    [UIView beginAnimations:nil context:NULL]; 
    [UIView setAnimationDuration:0.25f]; 
    CGRect frame = self.view.frame; 
    frame.origin.y = frame.origin.y + 204; 
    [self.view setFrame:frame]; 
    [UIView commitAnimations]; 
} 

を使用しようとしています上に移動しません。 :それはナビゲーションバーや制約で何かを持っている理由とあれば

enter image description here

ことは把握することはできません。

+0

私はself.viewを混乱させません。むしろ、すべてのテキストフィールドで新しいビューを作成し、そのフレームを変更します。 –

+0

そして、Navbarをカバーするように上に移動しますか?それを試してみる –

+0

私の提案は、この動作を効果的に処理するためにtableViewを使用することです。複数のセルを使用することもできますし、これらの要素をすべて含むビューで1つのセルを使用することもできます。 –

答えて

0

なぜこの美しい図書館IQKeyboardManagerを使用しないでください。それをポッド/手動で追加して仕事をさせてください。

0

アレクシー・ソボレフスキーが言ったことの種類。基本的には、スクロールビューにスクロールビューを配置し、スクロールビューの下にあるオブジェクトにその制約を追加し、その代わりにスクロールビュー内にテキストフィールドを含むすべてのビューを配置する必要がありました。これですべてが正しく機能しました。

0

最初にスクロールビューを追加します。 次に、次のコードを記述します。

//When return key press then bring the view back 
-(BOOL)textFieldShouldReturn:(UITextField *)textField{ 
    [textField resignFirstResponder]; 
    self.scrlView.contentOffset = CGPointMake(0, 0); 
    return YES; 
} 

//When the text field begin editing then moves the view up 
-(void)textFieldDidBeginEditing:(UITextField *)textField{ 
    self.scrlView.contentOffset = CGPointMake(0, 30); 
} 

//When ext field end editing then bring the view back 
-(void)textFieldDidEndEditing:(UITextField *)textField{ 

    self.scrlView.contentOffset = CGPointMake(0, 0); 
} 
+0

ご連絡ありがとうございました。お手数ですが、上矢印をクリックしてください。 – Sanjukta

関連する問題