D35 - 用 Swift 和公开资讯,打造投资理财的 Apps { 台股申购功能扩充 - 日历 }

前一篇有些股票资料的收盘价,显示的是 "-",但如果去查其他下单软件,是有收盘价的。而这些股票是在上柜资料里面。而前一份的来源,只有上市股票。

上市资料

https://www.twse.com.tw/exchangeReport/STOCK_DAY_ALL?response=open_data

上柜资料

https://www.tpex.org.tw/web/stock/aftertrading/otc_quotes_no1430/stk_wn1430_result.php?l=en-us&se=EW&o=data

因为做法首前面都有,这边就请读者自行发挥了,把资料下载的网址换掉,就可以了。

这一篇介绍的是日历 UI 套件。

https://ithelp.ithome.com.tw/upload/images/20211015/20140622bMIInQ3C0n.jpg

在台股申购日历的第二个页签,有日历页面,这个 UI 元件用手刻当然也是可以,但在个人 side project 上,我习惯用现成的 UI 套件去处理想做的需求。但如果是工作的开发专案,才会倾向去写自己的 UI 元件。因为自己的专案,自己可以改需求,但工作上,不是每个需求都能谈到能符合可直接使用的元件。如果最後还是要改 UI 元件,那自己写的风险,可能会比下载套件程序码後修改来的安全。

这个套件是 FSCalendar,可以在下方 github 上找到

https://ithelp.ithome.com.tw/upload/images/20211015/20140622ikqcu38BqH.png

https://github.com/WenchaoD/FSCalendar

使用方法如下

use_frameworks!
target '<Your Target Name>' do
    pod 'FSCalendar'
end

在这个日历的 VC 上,只要 conform FSCalendarDelegate, FSCalendarDataSource,就可以达到显示效果了。

这个页面主要目的,是以日历方式呈现,哪一天有几档股票可抽,下方配上 UITableView,让可抽的股票用列表呈现。

我用的 feature 在 FSCalendar 的 readme 上有呈现。

https://ithelp.ithome.com.tw/upload/images/20211015/20140622f8IXXqMybl.png

extension CalendarViewController: FSCalendarDelegate, FSCalendarDataSource {
    
    func calendar(_ calendar: FSCalendar, didSelect date: Date, at monthPosition: FSCalendarMonthPosition) {
        
        viewModel.selectedDate = date
        showEmptyViewIfNeeded(at: date)
        tableView.reloadData()
    }
    
    func calendar(_ calendar: FSCalendar, numberOfEventsFor date: Date) -> Int {
        
        return viewModel.getSubscriptionInfo(at: date).count
    }
    
    func maximumDate(for calendar: FSCalendar) -> Date {
        let maxDate = dateUtility.getDateByAdding(byAdding: .month, value: 6)
        return maxDate ?? Date()
    }
}

<<:  每日挑战,从Javascript面试题目了解一些你可能忽略的概念 - Day30

>>:  Day 30 - SBOM 工具 - syft

[Day2] 电脑视觉下的人脸

万般皆是脸 注:在接下来的内容里,我会着重在"图片"下的人脸辨识 (包含摄影机...

Ruby on Rails 继承(Inheritance)与开放类别

到目前为止的范例都是只有单一类别,但在真实的世界里其实是更复杂的,像是如果想要再加入一个小狗类别: ...

Day 7 - 神奇的工具 Cloud-Init

ok... 我真的要爆肝了 QQ 那前几天安装好路由器,也把网路设定完成了。 我们今天要来安装虚拟机...

#30 下一步:TypeScript & Deno

我们在过去 29 篇说了很多 JavaScript 的东西,也用 Node.js 写了一些东西。 现...

Best Outlook PST Splitter Tool to divide Outlook PST files

Sometimes PST files exceed the storage limit, whic...