###実現したいこと
TextFieldをタップしてPickerViewを表示させても、
スペースができないようにしたい
###現状
tableViewの上部を、下にスクロールした時は固定で、上にやったら上に行く。という処理をしたく、下に記載しているURL先を参考に実装しております。
画面上部に配置しているアイテム類(LabelのAからNavigationbarのTESTまで)をsubView内に配置して、そのsubViewをtableViewに挿入しております。
スクロール自体は問題ないのですが、
画面に配置しているPickerViewを使用したTextFieldをタップするとレイアウトがおかしくなり、スペースができてしまいます。
画面をスクロールさせるともとに戻ります。
参考元
http://qiita.com/mochizukikotaro/items/f48559630a639e7d467b
###プログラム
import UIKit class ViewController: UIViewController,UITableViewDelegate,UITableViewDataSource,UIPickerViewDelegate,UIPickerViewDataSource { @IBOutlet weak var tableView: UITableView! @IBOutlet weak var subView: UIView! var displayWidth: CGFloat! var displayHeight: CGFloat! override func viewDidLoad() { super.viewDidLoad() self.tableView.delegate = self self.tableView.dataSource = self displayWidth = self.view.frame.width displayHeight = self.view.frame.height tableView.frame = CGRect(x:0, y:0, width: displayWidth, height: displayHeight) tableView.contentInset.top = 295 tableView.addSubview(subView) - 省略 - (PickerViewの実装) /* スクロール時 */ func scrollViewDidScroll(_ scrollView: UIScrollView) { if scrollView.contentOffset.y < -295 { self.subView.frame = CGRect(x: 0, y: scrollView.contentOffset.y, width: self.displayWidth, height: 295) } }
- 起動時
- TextFieldをタップ
- 閉じるをタップ
あなたの回答
tips
プレビュー