
昨天我們已經將新增鬧鐘的頁面做出來了,今天就要把最重要的時間選擇器給刻上去,
那我們會用到DatePicker這個元件,直接來實作吧!
一樣使用code新增 DatePicker 元件
let datePicker: UIDatePicker = {
       let datePicker = UIDatePicker()
        return datePicker
    }()
接著加入畫面中
 func setViews() {
        self.view.addSubview(datePicker)
    }
設定Layout
func setLayouts() {
        datePicker.snp.makeConstraints { make in
            // 設定DatePicker元件的左邊距離畫面的左邊間隔17
            make.trailing.equalTo(self.view).offset(-17)
            // 設定DatePicker元件的頂部距離畫面的頂部間隔80
            make.top.equalTo(self.view).offset(120)
        }
    }
記得將setViews() & setLayouts() 放入 viewDidLoad()內哦!
override func viewDidLoad() {
        super.viewDidLoad()
        initView()
        setViews()
        setLayouts()
        setNavigation()
    }
執行看看程式吧!
DatePicker確實跑出來了,但外型好像跟Iphone的不太一樣?
讓我們來改造他一下:
let datePicker: UIDatePicker = {
       let datePicker = UIDatePicker()
        // DatePicker 只顯示時間,不顯示日期
        datePicker.datePickerMode = .time
        // 讓DatePicker顯示24小時制
        datePicker.locale = Locale(identifier: "NL")
        // 讓DatePicker的樣式跟IPhone上一模一樣
        datePicker.preferredDatePickerStyle = .inline
        // 設定DatePicker的文字顏色
        datePicker.tintColor = .orange
        return datePicker
    }()
接著再執行看看~
 哇靠!變得有模有樣了呢
哇靠!變得有模有樣了呢
最後呢,再加個文字讓他更像IPhone的鬧鐘介面~
let timeLabel: UILabel = {
        let label = UILabel()
        // Label的文字顏色
        label.textColor = .white
        // Label的內容
        label.text = "時間"
        return label
    }()
一樣加入畫面
func setViews() {
        self.view.addSubview(datePicker)
        self.view.addSubview(timeLabel)
    }
一樣設定Layout
func setLayouts() {
        datePicker.snp.makeConstraints { make in
            // 設定DatePicker元件的左邊距離畫面的左邊間隔17
            make.trailing.equalTo(self.view).offset(-17)
            // 設定DatePicker元件的頂部距離畫面的頂部間隔80
            make.top.equalTo(self.view).offset(120)
        }
        
        timeLabel.snp.makeConstraints { make in
            // 設定Label元件的頂部與底部皆與datePicker的頂部與底部一致
            make.top.bottom.equalTo(datePicker)
            // 設定Label元件的左邊距離畫面的左邊間隔17
            make.leading.equalTo(self.view).offset(17)
        }
    }
以上註解中,titleLabel的頂部與底部皆與datePicker的頂部與底部一致,這句話是什麼意思呢?
意思是:titleLabel與datePicker一樣高
圖解:
所以你的專案應該會如下圖所示
明天繼續做下面的內容,應該會再使用到TableView哦!