サブクラスがUITableViewController
で、いくつかの行が表示されます(正確には8)。最上部の行はUITextField
を含むカスタムセルです。ビューがロードされると、すぐにtextfield
にbecomeFirstResponder
を呼び出して、キーボードポップアップを表示します。これは、私がiOS 9からiOS 10にアップグレードするまでうまくいった。ビューは最後の2行をカバーするキーボードでビューの一番下に移動し、TextField
は可視領域から外れています。 becomeFirstResponder
コールをコメントアウトすると、飛び降りてしまいますが、私はもちろんキーボードポップアップを失います。でuserInfoCell?.nameField.becomeFirstResponder()
を呼び出すiOS 10 - ロード時にUITableViewControllerが下にスクロールする
- :これは...私のコードがどのように見えるか
class UserProfileTableViewController: UITableViewController { private var userInfoCell: UserInfoTableViewCell? ... override func tableView(tableView: UITableView, cellForRowAtIndexPath indexPath: NSIndexPath) -> UITableViewCell { if indexPath.section == 0 { userInfoCell = tableView.dequeueReusableCellWithIdentifier("userInfoCell", forIndexPath: indexPath) as? UserInfoTableViewCell if !editMode { userInfoCell?.nameField.becomeFirstResponder() } return userInfoCell! } else if indexPath.section == 1 { ....
ですその後、私のカスタムテーブルビューセルが...このように、私が試してみました
class UserInfoTableViewCell: UITableViewCell, UITextFieldDelegate,, UIImagePickerControllerDelegate, UINavigationControllerDelegate { @IBOutlet weak var nameField: UITextField! @IBOutlet weak var photoImageView: UIImageView! ... override func awakeFromNib() { super.awakeFromNib() // listen for when user touches a textfield nameField.delegate = self ... } override func setSelected(selected: Bool, animated: Bool) { super.setSelected(selected, animated: animated) } ...
物事を探します
viewWillAppear()
userInfoCell?.nameField.becomeFirstResponder()
をviewDidAppear()
UserInfoTableViewCell.awakeFromNib()
にnameField.becomeFirstResponder()
を呼び出します。userInfoCell?.nameField.becomeFirstResponder()
の呼び出し後にtableView.scrollToRowAtIndexPath()
を呼び出します。これらの私のviewWillAppear()
なしで取り外す
super.viewWillAppear()
は私のために働いています。 becomeFirstResponderを()延期
はこれを試して私のために問題を解く: '聞かせてセル= tableView.dequeueReusa .....'提案を/ 'リターンcell'に –
おかげでそれはしませんでした残念なことに、それを行う。私は下の問題に同じスクロールを取得します。 – Coder1224
うーん、私はスタックオーバーフローを切り詰めましたか? – Coder1224