我想在我的应用程序中拥有文本字段,以便可以将它们放置在所需的位置,并可以像使用添加文本字段后在页面中所做的操作一样,通过触摸来调整它们的大小。
答案 0 :(得分:0)
您正在寻找的是手势识别器。您可以在每个文本字段中添加一个,也可以在其超级视图中添加一个。让我们将其添加到超级视图中。
class ViewController: UIViewController {
private var fields: [UITextField] = [UITextField]()
private var selectedField: UITextField?
override func viewDidLoad() {
super.viewDidLoad()
view.addGestureRecognizer(UIPanGestureRecognizer(target: self, action: #selector(onPan)))
view.addGestureRecognizer({
let doubleTap = UITapGestureRecognizer(target: self, action: #selector(addNewField))
doubleTap.numberOfTapsRequired = 2
return doubleTap
}())
}
@objc private func addNewField(_ sender: UIGestureRecognizer) {
let newField = UITextField(frame: CGRect(x: 0.0, y: 0.0, width: 200.0, height: 50.0))
newField.backgroundColor = UIColor.lightGray
newField.center = sender.location(in: view)
view.addSubview(newField)
fields.append(newField)
}
@objc private func onPan(_ sender: UIGestureRecognizer) {
switch sender.state {
case .began:
selectedField = fields.first(where: { $0.bounds.contains(sender.location(in: $0)) })
case .changed:
selectedField?.center = sender.location(in: view)
default: break
}
}
}
我希望代码能说明大多数过程。