練習:模仿APP畫面+AutoLayout

Kelly
彼得潘的 Swift iOS / Flutter App 開發教室
4 min readApr 21, 2019

首先
參考彼得潘「如何模仿製作現成的 iOS App 畫面文章」

|第一個遇到的問題:下載sketch檔案打開後跑版

其實彼得潘文章裡已經有說要下載安裝SFUI...的字型,但是我安裝完還是一直跑版,裝了三種版本都不行,最後發現是名稱的問題,如果缺少的字型名稱是abc-Text,但安裝的字型名稱是「abcText」,系統就無法辨識,所以會一直出現錯誤訊息,最後只能手動把缺少字型指定到新安裝的字型。

|第二個遇到的問題:模擬器鬼遮眼

我下載的sketch檔案適用iphone8尺寸,但是很詭異的是模擬器iphone8+可以正常跑畫面,iphone8怎麼樣都是無畫面,重跑很多次都一樣,最後是把xcode和模擬器都關閉重開才解決。

進入正題,這次練習主要抄襲別人的APP畫面,順便練習AutoLayout
我東看西看,好像計算機最簡單(超懶的媽媽👀)

第一步:把底圖抄一抄

基本上就是用Label導圓角+改底色

第二步:填上字

(好像有那麼回事了喔?😗)記得~~要用客製化字型需要把字型檔拉近專案中並且做好連結喔(詳情參考彼得潘文章

字型檔拉近專案後會跳出這個視窗,記得兩個勾要打

第三步:畫圖(加上圖案)

上面的圖案有些空白對吧?因為是綜合圖案要另外自己畫的(蛤?自己畫,那下載sketch做什麼😜)但下載sketch檔案中的圖案如何匯入xcode就又要參考彼得潘文章

以除號為例,其實是一個長方形加上兩個圓形,勤快的自己畫,偷懶的就拿現成的
很像了吧

第四步:加上AutoLayout的條件

重頭戲來了!
一般來說,螢幕尺寸變大,可以顯示更多東西(所以元件尺寸應該維持)
但計算機這東西,沒有更多東西顯示啊,所以應該是元件尺寸會變大,也就是說,設定條件中是不能包括元件尺寸

錯誤的第一次~
我想起stack view可以快速處理autolayout, 很興奮地把元件們選起來然後加入stack view

然後就出現悲劇

看來此路不通,沒關係再試試另一條路
這次我嘗試把符號們加入stack view
又是悲劇!

符號加入stack view後就跑版了

好不容易嘗試到可以跑出正常畫面,卻發現尺寸調整後畫面就消失了
怎麼改都沒用只好呼救彼得潘大人,彼得光看無解,要我寄檔案給他
人太好燃起我的意志力(非不得已不要麻煩人啊)
原本我每個按鈕背景是用Label做的,後來改成view就可以在不同螢幕尺寸上正常顯示

好了,以為雨過天晴,結果發現圓角在螢幕放大後無法跟隨放大

解方:請參考彼得潘的「AutoLayout 的元件何時導圓角

經過無數個杯具,最後作弊似乎成功了

何謂作弊呢?
因為view並不是正方形,如果圓角使用midX,那按鍵「0」的圓角會變形,按鍵「0」要用midY看起來才正常
所以要有兩種圓角方式喔

Gilthub

--

--