一、隐藏软键盘
在 viewDidLoad() 添加 gestureRecognizer
// Hide keyboard
let gestureRecognizer = UITapGestureRecognizer(
target: self,
action: #selector(hideKeyboard))
gestureRecognizer.cancelsTouchesInView = false
tableView.addGestureRecognizer(gestureRecognizer)
@objc func hideKeyboard(
_ gestureRecognizer: UIGestureRecognizer
) {
let point = gestureRecognizer.location(in: tableView)
let indexPath = tableView.indexPathForRow(at: point)
if indexPath != nil && indexPath!.section == 0 &&
indexPath!.row == 0 {
return
}
descriptionTextView.resignFirstResponder()
}
以上代码确保只有点击 section 0, row 0 之外部分才会隐藏软键盘。
The HUD (Heads Up Display)
HUD,是 Heads-Up Display 的缩写。HUD 通常用于像下载文件或执行其它长期任务时显示进度条。
HUD 是 UIView 的子类,我们可以在其它视图之上添加 HUD。实际上,labels 是添加在 cells 顶部的 view,cells 是被添加到 table view 顶部的 view,而 table view 又是被添加在 navigation controller 的顶部的内容视图。
创建 HUD view
HudView.swift:
import UIKit
class HudView: UIView {
var text = ""
class func hud(
inView view: UIView,
animated: Bool
) -> HudView {
let hudView = HudView(frame: view.bounds)
hudView.isOpaque = false
view.addSubview(hudView)
view.isUserInteractionEnabled = false
hudView.backgroundColor = UIColor(
red: 1,
green: 0,
blue: 0,
alpha: 0.5)
return hudView
}
override func draw(_ rect: CGRect) {
let boxWidth: CGFloat = 96
let boxHeight: CGFloat = 96
let boxRect = CGRect(
x: round((bounds.si