iT邦幫忙

第 11 屆 iThome 鐵人賽

DAY 9
1
自我挑戰組

Swift!從新手到微上手系列 第 9

Swift-TextField & TextView

放假結束要趕快回來繼續拼鐵人了,今天來介紹TextField一些比較常用會實作到的功能

通常在應用程式需要輸入文字訊息的時候,就需要用到Textfield & TextView

建立TextField

  • 最簡單建立Text Field的方法就是直接從Library拉一個textField

  • 或是可以使用程式碼
// 使用 UITextField(frame:) 建立一個 UITextField
let myTextField = UITextField(frame: CGRect(x: 0, y: 0, width: 200, height: 50))

// 尚未輸入時的預設顯示提示文字
myTextField.placeholder = "請輸入文字"

// 輸入框的樣式 這邊選擇圓角樣式
myTextField.borderStyle = .RoundedRect

// 輸入框右邊顯示清除按鈕時機 這邊選擇當編輯時顯示
myTextField.clearButtonMode = .WhileEditing

// 輸入框適用的鍵盤 這邊選擇 適用輸入 Email 的鍵盤(會有 @ 跟 . 可供輸入)
myTextField.keyboardType = .EmailAddress

// 鍵盤上的 return 鍵樣式 這邊選擇 Done
myTextField.returnKeyType = .Done

// 輸入文字的顏色
myTextField.textColor = UIColor.whiteColor()

// UITextField 的背景顏色
myTextField.backgroundColor = UIColor.lightGrayColor()

// 取得螢幕的尺寸
let fullScreenSize = UIScreen.mainScreen().bounds.size

// 設置於畫面的中間偏上位置
myTextField.center = CGPoint(x: fullScreenSize.width * 0.5, y: fullScreenSize.height * 0.3)

// 加入畫面
self.view.addSubview(myTextField)

建立TextView

  • 直接從Library拉一個Text View

  • 使用程式碼建立Text View
myTextView = UITextView(
  frame: CGRect(x: 0, y: 0, width: 250, height: 200))
  // 背景顏色
myTextView.backgroundColor = UIColor.darkGrayColor()

// 文字顏色
myTextView.textColor = UIColor.whiteColor()

// 文字字型及大小
myTextView.font = UIFont(name: "Helvetica-Light", size: 20)

// 文字向左對齊
myTextView.textAlignment = .Left

// 預設文字內容
myTextView.text = ""

// 適用的鍵盤樣式 這邊選擇預設的
myTextView.keyboardType = .Default

// 鍵盤上的 return 鍵樣式 這邊選擇預設的
myTextView.returnKeyType = .Default

// 文字是否可以被編輯
myTextView.editable = true

// 文字是否可以被選取
myTextView.selectable = true

// 取得螢幕的尺寸
let fullScreenSize = UIScreen.mainScreen().bounds.size

// 設置於畫面的中間偏上位置
myTextView.center = CGPoint(
  x: fullScreenSize.width * 0.5,
  y: fullScreenSize.height * 0.3)

// 加入畫面
self.view.addSubview(myTextView)

實作鍵盤的方法

  • 當按下輸入框時,鍵盤會自動彈出。想要收起鍵盤就必須實作delegate
  • 需再ViewController遵從textfield的protocol
  • 有兩種常見的用法
  1. 按下return收起鍵盤
func textFieldShouldReturn(_ textField: UITextField) -> Bool {
        textField.resignFirstResponder()
        return true
  }
  1. 按下空白處可以收起鍵盤
override func touchesBegan(_ touches: Set<UITouch>, with event: UIEvent?) {
        self.view.endEditing(true)
    }

Text View 增加行數

//textviwe隨著你輸入的多行文字,增加行數
    func adTextView (hight: UITextView) {
        hight.translatesAutoresizingMaskIntoConstraints = true
        hight.sizeToFit()
        hight.isScrollEnabled = false
    }

上一篇
Swift-自動佈局 (Auto Layout)
下一篇
Swift-UITableView
系列文
Swift!從新手到微上手30

尚未有邦友留言

立即登入留言