2017-03-09 13 views
1

私は、アプリに請求先アドレスページを1つ持っています。ユーザーが追加したすべてのテキストフィールドデータを覚えてドロップダウンリストに表示する必要があります。テキストフィールドの自動候補をドロップダウンリストに追加するにはどうすればよいですか?

テキストフィールドの下部にテーブルビューを作成する必要があります。キーボードが表示されたときにテキストフィールドを維持するためにIQKeyboardManagerも使用しています。

キーボードが表示されると、キーボードの背面にテーブルビューが重なって表示されます。この問題を解決するには?

私はまた、スクリーンショットを添付しています:

IQKeyboardManager toolbar in front of text field

+0

https://github.com/hackiftekhar/IQKeyboardManager/issues/177あなたはキーボード –

+0

のツールバーを非表示にすることができますが、私は、ツールバーを非表示にしていません。 –

+0

あなたはテキストフィールドをもっと右に動かしたいと思いますか?キーボードのavoideを維持するために他の方法を使用する –

答えて

1

をRxSwiftを使用することができます。次のコードを使用して、特定のTextFieldオブジェクトのキーボードのdisctanceを設定することができます。

YourDropDowntextFiled.keyboardDistanceFromTextField = 250; 

だからあなたtextfiledのためのコード行を利用すると、あなたは簡単にドロップダウンリストが見える表示することができます。

私は次のようにデモをチェックしました。私はkeyboardDistanceFromTextFieldを追加していないので、キーボードの後に​​表示され、他のものはプロキシを適用するので、キーボードから大きな距離が表示されます。このよう

enter image description here

+0

ありがとうございます –

0

はこれを見て。あなたは私がIQKeyboardmanagerクラスのkeyboardDistanceFromTextField性質を発見したいくつかの検索を行うと、コンパクトな符号化のための

var autoCompleteTableView: UITableView = UITableView() 
let containerView: UIView = UIView() 
var placesArray = Observable.just([String]()) 

func createAutocompleteContainer() { 

     let screenSize: CGRect = UIScreen.mainScreen().bounds 
     let width : CGFloat = screenSize.width-138 
     let height : CGFloat = 200 
     containerView.frame = CGRect(x: 130, y: 62, width: width, height: height) 
     autoCompleteTableView.frame = CGRect(x: 0, y: 0, width: containerView.frame.size.width, height: containerView.frame.size.height) 
     containerView.backgroundColor = UIColor.whiteColor() 
     placesArray 
      .bindTo(autoCompleteTableView.rx_itemsWithCellIdentifier("cell", cellType: UITableViewCell.self)) { (row, element, cell) in 
       cell.textLabel?.text = "\(element)" 
       cell.textLabel?.textColor = UIColor(hex: "#b2b2b2") 
       cell.textLabel?.font = UIFont.systemFontOfSize(13) 
      } 
      .addDisposableTo(disposeBag) 


     autoCompleteTableView 
      .rx_modelSelected(String) 
      .subscribeNext { value in 
       self.textField = value 
       self.containerView.removeFromSuperview() 
      } 
      .addDisposableTo(disposeBag) 

     self.containerView.addSubview(autoCompleteTableView) 
     self.view.addSubview(containerView) 

    } 
+0

var placesArray = Observable.just([String]())Observableとは何ですか –

+0

RxSwiftバインディングplacesArray.bindTo ...またはvar placesArray = Variable([])を書くことができます このようにバインド placesArray.asObservable()。bindTo ... –

関連する問題