【发布时间】:2020-12-15 04:43:32
【问题描述】:
我需要保存 UITextField 文本、背景颜色和位置。
开始时保存为默认值,但最终会保存到数据库中。
理想情况下,我希望能够从堆栈拖动到另一个位置,但如果可以将其添加到那里,则可以从视图中心拖动。
var TFCount = 1
var TF = UITextField()
var stack = UIStackView()
func addTFToStack()
{
TF = UITextField()
TF.text = "\(TFCount)"
stack.addArrangedSubview(TF)
TFCount += 1
let panGesture = UIPanGestureRecognizer(target: self, action: #selector(self.panGestureHandler(panGesture:)))
panGesture.minimumNumberOfTouches = 1
TF.addGestureRecognizer(panGesture)
let defaults = UserDefaults.standard
defaults.setValue(TF.text, forKey: "TFTextSave")
defaults.setValue(TF.backgroundColor, forKey: "TFColor")
let TFSave = defaults.string(forKey: "TFTextSave")
}
func addTFToView()
{
TF = UITextField()
TF.text = "\(TFCount)"
view.addSubview(TF)
TFCount += 1
let panGesture = UIPanGestureRecognizer(target: self, action: #selector(self.panGestureHandler(panGesture:)))
panGesture.minimumNumberOfTouches = 1
TF.addGestureRecognizer(panGesture)
let defaults = UserDefaults.standard
defaults.setValue(TF.text, forKey: "TFTextSave")
defaults.setValue(TF.backgroundColor, forKey: "TFColor")
let TFSave = defaults.string(forKey: "TFTextSave")
}
@objc func panGestureHandler(panGesture recognizer: UIPanGestureRecognizer)
{
if recognizer.state == .began
{
let location = recognizer.location(in: view)
TF.center = location
}
else
{
let location = recognizer.location(in: view)
TF.center = location
}
}
override func touchesBegan(_ touches: Set<UITouch>, with event: UIEvent?)
{
addTFToStack()
}
【问题讨论】:
-
如果您有问题而不是请求,请告诉我们。
标签: ios swift uitextfield uipangesturerecognizer userdefaults