Swift纯Code之旅 Day7. 「时间魔术师: DatePicker」

今天要来介绍闹钟最重要的元件:DatePicker

昨天我们已经将新增闹钟的页面做出来了,今天就要把最重要的时间选择器给刻上去,
那我们会用到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()
    }

执行看看程序吧!
https://ithelp.ithome.com.tw/upload/images/20210917/20108999FFNnXcrIiQ.png

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
    }()

接着再执行看看~
https://ithelp.ithome.com.tw/upload/images/20210917/20108999i9HP14yx4p.png

/images/emoticon/emoticon49.gif哇靠!变得有模有样了呢

最後呢,再加个文字让他更像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一样高

图解:
https://ithelp.ithome.com.tw/upload/images/20210917/201089991qimRVnRFD.jpg

所以你的专案应该会如下图所示
https://ithelp.ithome.com.tw/upload/images/20210917/201089999MJgxKOy7A.png

明天继续做下面的内容,应该会再使用到TableView哦!


<<:  下载nodejs

>>:  Day 02:软件业界常用软件

[Day2] 安装 Rust

$ curl https://sh.rustup.rs -sSf | sh -- -y 需要 GCC...

D3 Django 资料夹结构与设定说明

今天来了解一下目前整个资料夹架构跟档案设定 移动到Django_project资料夹在powersh...

NBA大数据预测高达65%准确且能赚钱的分析研究,究竟是真是假呢?

今天来分享一篇研究,是由Matthew Houde所撰写的《Predicting the Outco...

DAY23 神经网路优化技巧

昨天我们尝试动手刻了一个神经网路,准确度虽然看似很高了,但似乎还有进步的空间,今天我们就来介绍如何优...

JavaScript Day26 - Async、Await

ES7:Async、Await async:async 写在函式前面,表示函式是非同步的,回传值是 ...