因為iOS 13 新增了 SceneDelegate的頁面,導致我想在app開發時相容更舊的iOS版本,Xcode就會無情的跳出錯誤。
那應該怎麼修復他們呢?
一、依錯誤提示,在AppDelegate, SceneDelegate加入@available(iOS 13.0, *)
因為iOS 13 新增了 SceneDelegate的頁面,導致我想在app開發時相容更舊的iOS版本,Xcode就會無情的跳出錯誤。
那應該怎麼修復他們呢?
一、依錯誤提示,在AppDelegate, SceneDelegate加入@available(iOS 13.0, *)
今日有人問我,你在做什麼的時候最有成就感?
我想了想,發現並不是在coding的時候。
我覺得寫code就像寫作文,
可完成一篇文章,會給我帶來成就感;
但寫code,卻不會。
現在的我寫的程式,就像小學生的作文,
看著前後文,你能大略讀懂他的意思,但沒什麼文法可言,
用詞也非常稚嫩。
如若有朝一日,我的程式碼也能有點詞藻,語句通順,用詞精準
搭配花花綠綠的介面,完美的測試,
那時一定特別的有成就感!說不準連自己都忍不住來回多望幾眼呢!
期許 更上層樓。3/17有感而發。
突然心血來潮,把自己的1A2B小遊戲改成純程式碼的方式去寫。
依照網路上的文一步驟一步驟移除storyboard,
然後修改sceneDelegate
(參照上連結,Using Scene Delegate With Storyboards)
完成後,UIScreen.main.bounds卻一直呈現比手機螢幕還小的狀況,
print的長寬分別是 480 x 320,一直找不到原因是什麼。
google 後,有很多人遇到這個問題,是因為plist裡面失去了原本的storyboard,造成xcode無法獲取設備大小,他就會被鎖定在480x320的最小畫面。
參考彼得潘文章完成設定,終於成功建立純程式的swift 環境。
雖然 swift 以擁有 alert 樣式,只要呼叫就可以顯示。
但如果看膩了預設樣式,可以用自己的方式修改嗎?
我們需要兩個 ViewController 去製作這個畫面
一個是原始的 ViewController
另一個則作為 alertView 使用
參考網址:
我們可以在畫面開始的 ViewController 呼叫 ViewController
storyboard的名字是Main
當作alert的 ViewController 他的 storyboard ID 設為 alert
let storyboard = UIStoryboard(name: "Main", bundle: nil)
let myAlert = storyboard.instantiateViewController(withIdentifier: "alert")
myAlert.modalPresentationStyle = UIModalPresentationStyle.overCurrentContext
myAlert.modalTransitionStyle = UIModalTransitionStyle.crossDissolve
self.present(myAlert, animated: true, completion: nil)
然後在alert 頁面便可以自由的放置任何物件
透過背景透明度調整,可以呈現模仿 UIAlert的效果。
但還要加入 Alert 消失的效果
才能真正成為 Alert!
故在 alert 頁面UIButton加入下段
self.dismiss(animated: true, completion: nil)
點擊按鈕後,仿生的alert就會慢慢的淡出!
一陣子沒有寫文章
110年7月28日在新公司開始上班,正式成為iOS app工程師的第一天。
新手上工,
沒有前案,第一天便馬上開始依據公司UI&UX設計師的Figma構圖
馬上開始作專案。
畫面刻畫上用StackView,基本上沒有問題,大部分的元件隨意換手機平板螢幕都可以適應。
遇到一個卡關很久的地方是在串接公司後端工程師製作的api
因為以前串接的資料都是公開資料,
不需要輸入帳號密碼、也不需要驗證token
好在彼得潘這篇文章敘述的很清楚
發送request給網上的伺服器主要有四種method
四種分別是 GET, POST, DELETE, PUT/PATCH。
我以前取用開放資料都是直接使用GET
但現在不一樣了,公司的Api需要輸入帳號密碼,以防被路人隨意存取。