iOS HW RE: #24 Storyboard 電子書 App
上面的連結,是我上次做的電子書作業。
其實我這次可以pass這個作業的,可是我想要詳細寫出製作流程,所以我打算再寫一篇出來。
=
剛開新的project時,不是在main.storyboard會有一個初始的View Controller嗎?
我先在它embed in Navigation Controller, 再在Navigation Controller上,embed in Tar Bar Controller。
由來是參考這篇文章:
裡面是建議先加Navigation Controller,再加Tar Bar Controller,讓Tar Bar Controller成為初始頁面比較不會有bug出現。
所以我就照做。
=
接下來我要調整Tar Bar,所以按Tar Bar Controller上的按鈕,直接跳到Tab Bar去做設定。
然後我想要Tar Bar展現出來,不要是透明的(預設值),所以我再去Interface Builder把Standard & Scroll Edge勾選起來。
成果如下,Tab Bar呈現出來了,還帶有毛玻璃效果!
=
再來要設定Tab Bar的圖案和文字。
在調整之前,先學會如何選取到它們。
要按的地方是Navigation Controller的item圖示。
title改分頁標籤的名字,image則為該標籤的圖案;通常是直接使用內建的SF symbol。
如何載入SF symbol的圖案? A:直接打名字,自然就有選單讓你選了。
如果不知道腦中想像出那個圖案是叫什麼,沒關係,chatgpt會救你。
Badge是分頁標籤圖案左上角的顯示。
=
剛剛Xcode當掉了==|||
所以我強制關掉再重開,發現View Controller有問題。
所以我殺掉原本的,再重新建立一個View Controller。
此時要重新建立Navigation Controller和View Controller之間的Segue,從Navigation Controller上按右鍵,拖到View Controller放開出現選單時,按照上圖操作即可重新連結起來。
=
如法泡製,可以在創造出n個分頁出來。
然後我想要每一個分頁,都有自己的storyboard,怎麼辦?
照下面連結做。
首先,把要加入新增的View Controller全部選取起來。
再按command + shift + a叫出Quick Actions,選Refactor to Storyboard
再來會跳出新增storyboard的畫面,取個好名字吧!
再來就會看到main.storyboard上,長出新的方塊指向新storyboard了
完成啦!
=
從Tar Bar Controller拉Segue到Navigation Controller,要按的是view controllers。(因為我又創立新的分頁,所以要自己拉線了。)
=
自從有Navigation Controller之後,我們就可以設定連在Navigation Controller之後的“每一個”View Controller的Navigation Bar,來設定:每一頁的title、下一頁的Back Button。
Title可以設定分頁的標題。
Back Button則是下一頁的Back鍵上,顯示的文字。
可以根據上面的連結的說明來設定。
=
Table View Controller與其相關設定
Table View Controller是表格的Controller,整夜都是表格。
Dynamic Prototypes要搭配程式才能辦到,我現在還是小朋友,所以我選擇不用寫程式、只靠Storyboard就可以達成的Static Cells。
跑模擬器測試,Navigation Controller接Table Bar Controller時,選單如果選show,死機。
跑模擬器測試,Navigation Controller接Table Bar Controller時,選單如果選root view controller,跑起來了!
從Table View Cell拉線
看左邊欄位,確定選到“Table View Cell”就可以按右鍵,拉Segue過去到下一頁View Controller了。
Table View Cell可以有些細節設定,像上圖中的Cell右邊,有一個”>”,也是透過Interface Builder的Accessory設定的。
記住,Table View Cell可以點選,所以自然也可以像Button拉出Segue出來到下一頁。
=
Scroll View的設定
原本我是想用APIs去抓該網頁的資料,可是我想到我還不會寫程式,所以只能退而求其次,改成抓網頁中的文字,做成可以捲動的Label來代替。
上面的連結是Scroll View的做法,我也是根據這個連結的做法,做出可以上下捲動的效果的。
先在View Controller上加入Scroll View,如下。
可是你在Scroll View上,是不能加入UI元件的,如Button。
所以該怎麼辦? A:加入個Vew!
把View調整後,並加入字超多的Label
再來回到Scroll View,要加入讓畫面捲動的設定了
要加入的設定是contentSize,按”+”加入。
重點來了,這個Value的值要大於Scroll的Size(width x height),畫面才能捲動。
我不要左右捲動,所以width設為0,height就設為label的,接下來就可以上下捲動了。
這樣就設定完成了!
結果如下面的gif
=
LaunchScreen.storyboard的設定
就是app啟動畫面,頂多一秒鐘,所以我就放一張型月社的ICON而已。
有些看起來像動畫的,就是放一張動畫上去,然後跑個一秒這樣。
=
App名字
點選專案名字->General->Display Name去輸入你想要的名字
=
這是GitHub:https://github.com/psp123456e/eBook