關於ios開發的基本東西書上大概都有,所以這邊只列出開發過程中令人痛恨卡住的地方~(雖然書上也可能有就是...)
首先最令人痛恨的第一點:畫面的捲軸
那麼什麼是捲軸呢,如圖所示:
紅色圈圈圈起來的就是捲軸了~~可以讓你的畫面上下左右移動,顯示出比你螢幕還大的區域。
再來,看看畫面是怎麼構成的,如圖所示:
這個是上一張圖的介面階層,可以看到名為"Base Scroll View",位於"View"的底下,意思是"Base Scroll View"壓在"View"上面。
順道一提,原本用storyboard拉出來的介面預設叫做Scroll View,會換個名字是因為我指定了class給該捲軸,如圖:
回到主題,我們也可以把這些介面用簡單的方式來理解,每個View、每個Button代表一張紙,不同大小的紙張疊法不同,可以看見的東西就會有所不同。
那麼捲軸令人痛恨的地方在哪呢?
人類對於看不見的東西,就必須運用想像力...就像這個捲軸,必須想像一個比手機螢幕還大好幾倍的畫面,但因為手機螢幕就這麼大,能顯示的東西有限,就像這樣:
紅色框框的範圍是捲軸畫面的大小,程式上利用setContentSize來設定大小,比如說此例設定為1600*2000 pixel。
藍色框框則是原本scroll view(Base Scroll View)的大小,這個則是利用setFrame來設定,此例為320*346 pixel。
到這裡似乎沒什麼問題,不過當大小設定好之後,其實畫面預設應該是這樣子:
兩個框框都在原點。
當在設計這個功能的時候,希望畫面一開始就在正中央,這樣使用者新增資料的時候可以往上下左右增長,這時候就要讓程式預先移動好捲軸位置,才能如上一張圖那樣。
煩人的數學計算就來啦~計時開始!
總之最後還是順利弄出個公式來,讓畫面可以一開始就置中,這時候要call的函式是setContentOffset。
現在寫起來很簡單...但一開始不知道畫面構成是這樣、要達成目標要call哪個函式,一些「眉角」沒弄清楚(其實是很多!!寫到最後都覺得這是經驗法則了...),很容易就想偏,更不用說裡面還有沒提到的Button位置設定、畫線等等交叉計算的地方...try & error的時間也用上不少。
往後還有進階的功能:「縮放」,這部分也是不忍卒睹...請容我以後再談。
沒有留言:
張貼留言