“`html
2025 最新 Swift 表單製作教學:使用 UITextField 和 UILabel
在 Swift 中,我們可以使用 UITextField
和 UILabel
來製作表單。UITextField
允許使用者輸入文字,而 UILabel
則用來顯示文字。本文將介紹如何使用 Swift 來製作表單,並示範如何應用這兩個元件。接下來,我們將透過實作範例來深入瞭解。
步驟 1:在 Storyboard 中新增元件
首先,在 Xcode 的 Storyboard 中新增一個 UITextField
和一個 UILabel
。確保將它們擺放在畫面上適當的位置,以便使用者可以輕鬆地進行輸入和查看。
步驟 2:設定 UITextField 和 UILabel
使用以下程式碼來設定 UITextField
和 UILabel
的屬性:
// 設定 UITextField
textField.placeholder = "請輸入文字"
textField.borderStyle = .roundedRect
// 設定 UILabel
label.text = "顯示文字"
label.textColor = .black
label.font = UIFont.systemFont(ofSize: 17)
步驟 3:將 UITextField 的輸入顯示在 UILabel 上
我們將使用以下程式碼將 UITextField
輸入的文字動態顯示在 UILabel
上:
// 將 UITextField 輸入的文字顯示在 UILabel 上
textField.addTarget(self, action: #selector(textFieldDidChange(_:)), for: .editingChanged)
@objc func textFieldDidChange(_ textField: UITextField) {
label.text = textField.text
}
步驟 4:使用 Auto Layout 放置元件
最後,使用以下程式碼將 UITextField
和 UILabel
放置在畫面上,確保它們的排版符合設計需求:
// 將 UITextField 和 UILabel 放置在畫面上
textField.translatesAutoresizingMaskIntoConstraints = false
label.translatesAutoresizingMaskIntoConstraints = false
NSLayoutConstraint.activate([
textField.topAnchor.constraint(equalTo: view.safeAreaLayoutGuide.topAnchor, constant: 16),
textField.leadingAnchor.constraint(equalTo: view.safeAreaLayoutGuide.leadingAnchor, constant: 16),
textField.trailingAnchor.constraint(equalTo: view.safeAreaLayoutGuide.trailingAnchor, constant: -16),
label.topAnchor.constraint(equalTo: textField.bottomAnchor, constant: 16),
label.leadingAnchor.constraint(equalTo: view.safeAreaLayoutGuide.leadingAnchor, constant: 16),
label.trailingAnchor.constraint(equalTo: view.safeAreaLayoutGuide.trailingAnchor, constant: -16),
])
錯誤排除
如果在實作過程中遇到問題,以下是一些常見錯誤及其解決方案:
– **UITextField 無法顯示文字**:確保已正確設置 placeholder,並檢查 textFieldDidChange 方法是否已連接正確。
– **UILabel 未更新**:確認是否已正確設定 target,並檢查是否有其他程式碼影響 UILabel 的顯示。
延伸應用
除了基本的表單製作,您還可以擴展這個範例,例如增加按鈕來提交表單,或者將輸入的文字儲存到資料庫中。這些功能可以讓您的應用程式更具互動性和實用性。
Q&A(常見問題解答)
Q1: UITextField 如何限制字數?
A1: 您可以使用 delegate
方法來限制字數,監聽 textField(_:shouldChangeCharactersIn:replacementString:)
方法來實現。
Q2: UILabel 如何自動換行?
A2: 設定 numberOfLines
屬性為 0,並確保 lineBreakMode
設為 byWordWrapping
。
“`
—