您可以使用UIStackView或UITableView來實現此功能。
要創建一個UITextField,請使用以下代碼片段。
let tf = UITextField()
tf.borderStyle = .roundedRect
tf.setContentHuggingPriority(UILayoutPriority(integerLiteral: 750), for: .horizontal)
tf.setContentHuggingPriority(UILayoutPriority(integerLiteral: 750), for: .vertical)
使用StackView,
- 要添加的UITextField,創建一個文本字段,並使用
func insertArrangedSubview(_ view: UIView, at stackIndex: Int)
方法添加。更多信息可以在here找到。
- 要刪除所有UITextFields,請使用
func removeArrangedSubview(_ view: UIView)
方法。在這裏,您需要指定要刪除的視圖。使用UIStackView的arrangedSubviews
屬性來獲取所有子視圖的數組。更多信息可以發現here
使用的UITableView,
你需要一個UITableViewCell配置爲具有UITextField,用於它。一旦你有了單元格,只需保留一個變量來保存所有UITextFields的數量每次用戶點擊加號按鈕時,使用func insertRows(at indexPaths: [IndexPath], with animation: UITableViewRowAnimation)
添加一個TextField。 千萬不要忘記增加你的計數。更多的信息可以在here找到。您也可以只增加計數變量並重新加載表格。
要刪除全部,您可以使用func deleteRows(at indexPaths: [IndexPath], with animation: UITableViewRowAnimation)
或簡單地將count變量設置爲零並使用func reloadData()
。可以找到更多的信息here和here
你可以通過使用'UIStackView'節省自己添加約束的痛苦。然後,只需添加新的文本字段。 我不知道如何做到這一點,但我會看看。這聽起來很有趣。 – Marmelador
https://stackoverflow.com/questions/1196436/uitextfield-in-uitableviewcell-adding-new-cells –