2017-07-04 15 views
3

私はUITextFieldをスクロールしてキーボードが重なってしまうのを避けようとしています。 Click here to view current OUTPUT i am getting] StoryBoard Screenshot。私は最後のテキストフィールドをクリックすると、ビューをスクロールしようとしました。パスワードフィールド。パスワードフィールドをクリックすると、電子メールフィールド、すなわち2番目のフィールドだけがスクロールアップします。最初と最後のフィールドでスクロールが発生しません。どうすればこの問題を解決できますか?キーボードオーバーラップSwift 4のUITextField

`

// 
// ViewController.swift 


import UIKit 

class ViewController: UIViewController,UITextFieldDelegate { 

    @IBOutlet weak var scrollView: UIScrollView! 

    @IBOutlet weak var name: UITextField! 

    @IBOutlet weak var email: UITextField! 


    @IBOutlet weak var password: UITextField! 

    override func viewDidLoad() { 
     super.viewDidLoad() 
     // Do any additional setup after loading the view, typically from a nib. 
    } 

    func textFieldDidBeginEditing(_ textField: UITextField) { 
     // Begin 
     switch textField.tag { 
     case 0...1: 
      print("DO NOTHING") 
     default: 
      print("Do Scroll") 

      scrollView.setContentOffset(CGPoint(x:0,y:100) , animated: true) 
     } 

    } 

    func textFieldDidEndEditing(_ textField: UITextField) { 
     // End 
     scrollView.setContentOffset(CGPoint(x: 0, y: 0), animated: true) 

    } 
    func textFieldShouldReturn(_ textField: UITextField) -> Bool { 
     // Return 

     if textField.tag == 0 
     { 
      email.becomeFirstResponder() 
     } 
     else if textField.tag == 1 
     { 
      password.becomeFirstResponder() 

     } 
     else if textField.tag == 2 
     { 
      textField.resignFirstResponder() 

     } 
     return true 
    } 


} 

`

+0

すべてのテキストフィールドがスクロールビューに存在することを確認します。 – KKRocks

+0

はいそれがあります.... –

+0

あなたはストーリーボードにuiview階層のスクリーンショットを追加できますか? – KKRocks

答えて

0

あなたが本当にロジックを自分で処理したい場合を除き、私はあなたがIQKeyboardManagerを試してみることをお勧めします!

あなたがappDelegateで読み込んで有効にするシンプルなCocoaPodライブラリです。それだけです。

これはコードレスライブラリなので、アプリケーション全体のすべてのテキストフィールドの再配置を引き継いで処理するので、実際にもう一度考える必要はありません。

0

あなたは以下のようにscrollviewするために、すべてのテキストフィールドを移動する必要があります。

enter image description here

+0

これはローカルディレクトリを指し、eにアップロードします。 g。 Imgur。 – the4kman

+0

すべての3つのフィールドをスクロールビューの中に入れてください...同じ問題です。アニメーションが動作していません。この編集の直前に、以前のOUTPUT gifが表示され、電子メールフィールドが立ち上がります。しかし、今や3つのフィールドはすべて静的です - –

0

StackOverflowとYouTubeのキーボードオーバーラップの問題は、ここでは複数の解決策があります。それらはすべて編集イベント処理のバリエーションです。私のような怠惰で時間のかかる人達にとっては、スクロールビューの一番下に固定高さのフッター(内容の有無にかかわらずビュー)を使用することをお勧めします。私は通常、さまざまな種類の免責事項とヘルプ情報を掲載しています。このフッターはキーボード上のテキストビューを常に「プッシュ」します。