《機關算盡太聰明,反算了卿卿性命》不如就來寫個計算機吧~~〈一〉

Justin
Dec 22, 2020
圖片計算機非當事者計算機本人

《紅樓夢》有一支曲子【聰明累】是在描寫鳳辣子王熙鳳,「機關算盡太聰明,反算了卿卿性命」正是該曲的頭兩句;做人還是單純點好,就像蘇軾《洗兒詩》就有所體悟:

人皆養子望聰明,我放聰明誤一生。

惟願孩兒愚且魯,無災無難至公卿。

最近由於某些原因,所以寫了一個計算機,功能有+、ー、✕、÷,以及X!的運算功能,經過幾天的努力,及參考了眾多資料,終於寫出一個有上述功能,且有千分符號,也有小數點的簡易計算機出來,預計會分成幾回來分享一下我的寫法。

(一)Layout

聊聊Layout吧,先打開手中的iPhone,仔細觀察一下計算機的排版,直的四行,橫的五列,參考網路大神及自己的想法,先由上至下排了五個StackView,每個StackView裡面有四個Button,spacing為6是每個Button之間的距離,Distribution選擇Fill Equally,再將五個StackView放在一個大的StackView之中,Distribution亦選擇Fill Equally;有"0"的StackView改成只有三個Button,"="、"."的width是用整個View width的0.25再-6或-7去調整,剩下的空間因為先前StackView的Distribution是選擇Fill Equally,就會被"0"的Button佔滿。

Layout參考

另外iOS的元件都是圓角的,所以Botton的"identity inspector"裏的"User Defined Runtime Attributes"要做設定,"Key Path"的內容用「layer.cornerRadius」,"Type"選擇「Number」,"Value"自行設定,產生出圓角的效果。

Show the identity inspector

(二)按鍵的觸發

因為按鍵很多, 一個一個拉@IBAction或是@IBoutlet感覺很費事,不如就用Tag吧!

Show the Attributes inspector

我把數字及小數點11個鍵都拉同一個@IBAction,sender是UIButton,這樣就可以直接取用tag,來顯示在UILabel上面。

@IBAction程式

本回就大概分享了layout及數字按鍵設定,欲知+、ー、✕、÷的功能,且見下回分曉。

--

--