暑期项目开发实训 Day19

来源:互联网 发布:linux string 编辑:程序博客网 时间:2024/06/02 05:16

现在习惯记录前一天的事情了。。。。

昨天(周五)下午我们改了设计图,我也终于弄清了自己负责的Checklist部分是什么样貌了。

不过因为实验室老大要把这个项目要做成产品,因此细节图不便透露。我只能大致讲一下方向~

首先,从日历界面进入Checklist时,显示的是本周的Checklist。

如果本周未建立Checklist,标题为Add;否则标题为Edit。

导航栏可以Cancel回到主界面,亦可以Next Week进入下一周界面。

Checklist的Add和Edit只是针对Item,并不针对List本身。

要添加一个Item,考虑两种模式(文字模式、日历模式)

点击文字模式按钮输入Item名,然后点击日历模式按钮输入Item日期,然后done完成。

整个Item的添加是在同一个界面内完成的,不涉及跳转。

其实这样更有助于改善用户体验(用户总是不喜欢跳来跳去的)

我们老大希望两种模式对应的按钮是互斥锁,因此我的设计实现如下:

    // 文字模式    @IBAction func AddModel(_ sender: Any) {        AddState.setImage(UIImage(named:"add_highlighted"),                                    for: UIControlState.highlighted)        AddState.setImage(UIImage(named:"add_highlighted"),                                    for: UIControlState.normal)        CalState.setImage(UIImage(named:"deadline_normal"),                                    for: UIControlState.normal)        CalState.setImage(UIImage(named:"deadline_normal"),                                    for: UIControlState.highlighted)                textField.becomeFirstResponder()            }        // 日历模式    @IBAction func CalModel(_ sender: Any) {        AddState.setImage(UIImage(named:"add_normal"),                          for: UIControlState.highlighted)        AddState.setImage(UIImage(named:"add_normal"),                          for: UIControlState.normal)        CalState.setImage(UIImage(named:"deadline_highlighted"),                          for: UIControlState.highlighted)        CalState.setImage(UIImage(named:"deadline_highlighted"),                          for: UIControlState.normal)                textField.resignFirstResponder()        dataPickerVisible = true        self.view.addSubview(dataPicker)        dataPicker.frame = CGRect(x:0, y:467, width:375, height:200)                dataPicker.setDate(dueDate, animated: false)    }

这样就可以在点击某一按钮制造高亮时,另一按钮自动“熄灭”。

不过我的日历弹出尚且有些问题。

我的日历不是弹出的,没有做动画效果,因此有些生硬。

有一个意外:

日历是透明的,因此和背后的TableView有重影,这是接下来需要解决的。

还有需要解决的问题是:

1. 在同一个界面内完成Item的添加

2. 日历的第一列为周

3. 键盘的Next唤出日历,日历的Done完成Item添加。。。。。





原创粉丝点击