gpt4 book ai didi

ios - 编辑 UITextField 时正在重置 UIScrollView

转载 作者:行者123 更新时间:2023-11-28 15:41:00 26 4
gpt4 key购买 nike

我是 Swift 3 的新手,我只注意到我们需要 ScrollView ,因为当我们在文本字段中键入时,键盘可以越过一些小部件,就像在这个视频中一样。 Fixing UITextField-Keyboard Problems (Swift in Xcode) .

但是,即使在以编程方式 ScrollView 之前,我也有一个不幸的行为。我的观点一直被重置到它的初始位置。我做了一个video表现出这种行为。

我找不到关于此问题的提及。有人知道吗?

[编辑]

这是小部件的结构

enter image description here

这是我的 View Controller 代码:

import UIKit
import AVFoundation

class SignUpController: UIViewController, UITextFieldDelegate
{

@IBOutlet var scrollView: UIScrollView!
@IBOutlet var stackView: UIStackView!

@IBOutlet var usernameTextField: UITextField!
@IBOutlet var passwordTextField: UITextField!
@IBOutlet var confirmationTextField: UITextField!
@IBOutlet var emailTextField: UITextField!
@IBOutlet var phoneTextField: UITextField!
@IBOutlet var firstNameTextField: UITextField!
@IBOutlet var lastNameTextField: UITextField!

@IBOutlet var signUpButton: UIButton!

var keyboardHeigh:CGFloat!

override func viewDidLayoutSubviews() {
super.viewDidLayoutSubviews()
self.scrollView.contentSize = self.stackView.frame.size
self.scrollView.contentSize.height += self.stackView.frame.minY + 20
}

override func viewDidLoad() {
super.viewDidLoad()

let textFields :[UITextField] =
[
usernameTextField,
passwordTextField,
confirmationTextField,
emailTextField,
phoneTextField,
firstNameTextField,
lastNameTextField,
]

for i in 0..<textFields.count
{
textFields[i].delegate = self
textFields[i].tag = i
}

NotificationCenter.default.addObserver(self,
selector: #selector(keyboardWillShow),
name: .UIKeyboardWillShow, object: nil)
}

func keyboardWillShow(notification: NSNotification)
{
if let keyboardSize = (notification.userInfo?[UIKeyboardFrameBeginUserInfoKey] as? NSValue)?.cgRectValue
{
keyboardHeigh = keyboardSize.height
}
}

func textFieldShouldReturn(_ textField: UITextField) -> Bool
{
// Try to find next responder
if let nextField = textField.superview?.viewWithTag(textField.tag + 1) as? UITextField
{
nextField.becomeFirstResponder()

}
else
{
// Not found, so remove keyboard.
textField.resignFirstResponder()

}

return false
}
}

最佳答案

1.你可以使用带有静态单元格的 UItableViewController,

2.将 textField 放在单元格中。

3.选择无单元格。

4.不设置分隔符

它会很好地工作。

关于ios - 编辑 UITextField 时正在重置 UIScrollView,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/43680702/

26 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com