一步一步,開始上手Mac 開發(fā)(三)

非常感謝大家來繼續(xù)閱讀第三篇(也是終篇)關(guān)于簡單的Mac開發(fā)入門的上手系列文章,本篇中我們來討論怎樣細化App和更好的交互體驗,通過這些历极,你完全可以構(gòu)建自己喜歡的Mac 上的應(yīng)用

我們之前的工程存在哪些問題?

我們的工程運行后,你可以正常的顯示一個scary bug 列表操作窗口砖茸,并且可以進行刪除,添加以及修改這些數(shù)據(jù)殴穴,它功能完整凉夯,但是它的用戶體驗并不理想货葬。

運行中的App

比如,你調(diào)整窗口的大芯⒐弧(可以把窗口拖大一些震桶,如下圖),窗口內(nèi)控件的尺寸征绎,并沒有變化蹲姐,而且控件之間也沒有布局整齊,這是的它們看起有點難看人柿,乃至看專業(yè)柴墩;

大窗口的App

再或者你把窗口縮小(如下圖)凫岖,一部分需要顯示的內(nèi)容已經(jīng)無法看見了江咳,因此我們需要明顯的設(shè)置一個窗口的最小幅度,這樣我們的應(yīng)用才可以正常使用

好吧哥放,讓我們來動手改進這些問題~

1 ?設(shè)置窗口的最小尺寸

1.1 先選中MasterViewController.xib歼指,重新調(diào)整view 的尺寸和排列內(nèi)部的各個控件,(以你喜歡的方式)讓控件看起來更協(xié)調(diào)甥雕,而且能夠全部顯示东臀,它可能看起來像下面這樣樣子:

調(diào)整大小和對齊控件后的窗口

1.2 從控件庫中,拖一條豎直的線到view 中犀农,把它放在table view 和詳情視圖直接的空白處(居中)

添加一條豎直分割線

1.3 點選size inspector選項惰赋,記下view的size,在我們的示例工程中呵哨,view的尺寸是471 * 357

查看view 的size inspect頁

1.4 選擇mainMenu.xib,然后選擇window赁濒,根據(jù)上一步我們記下的view 的窗口size來設(shè)置window的最小尺寸:

設(shè)置窗口的最小尺寸

1.5 編譯運行工程,試試調(diào)整運行應(yīng)用的窗口孟害,你會發(fā)現(xiàn)我們再也不能把窗口變得比我們設(shè)置好的最小值再小了拒炎,這樣我們的需要展示的界面就會一直顯示完整

窗口無法再縮小了

好了,接下來我們進一步的調(diào)整窗口適配挨务,目前我們的window中击你,主要分為兩部分:列表 (豎直線左側(cè))和 列表詳情展示(豎直線右側(cè)),當window尺寸變化時谎柄,這兩部分的適配要求是不同的丁侄,我們先來設(shè)置table view :當窗口高度增加的時候,我們希望table view的高度也隨之增加朝巫,但當窗口寬度增加的時候鸿摇,我們希望table view的寬度不變(固定寬度)

1.6 設(shè)置table view 的窗口適配,在MasterViewController.xib中劈猿,選中table view 后拙吉,切換到size inspect屬性頁潮孽,修改autosizing設(shè)置

設(shè)置table view 的autosizing屬性

設(shè)置完成后,運行應(yīng)用筷黔,你會發(fā)現(xiàn)當我們改變窗口大小時往史,table view 的高度會隨窗口變化,但寬度是固定不變的佛舱,這正是我們需要的效果

* 如果你發(fā)現(xiàn)table view 的高度并沒有你預(yù)料中的跟隨窗口高度變化椎例,請確認你的view 設(shè)置是否正確(如下圖:)

view 的autosizing 設(shè)置

1.7 使用同樣的方法,我們設(shè)置豎直分割線

豎直線的autosizing設(shè)置

1.8 設(shè)置+按鈕和-按鈕:按鈕大小不變名眉,但位置始終位于窗口的底部(與窗口底部的距離固定)

設(shè)置+按鈕和-按鈕的autosizing屬性

運行程序粟矿,看一下效果^_^

適配了table view 凰棉,button 损拢,line后的運行效果

1.9 設(shè)置詳情部分的控件,參考下圖:

設(shè)置textFiele 和EDStarRating view 的autoresizing
label 的autoresizing設(shè)置
按鈕的autoresizing設(shè)置
image view 的autoresizing設(shè)置

運行工程撒犀,我們可以看到所有的控件都會在窗口大小改變的時候會相應(yīng)的調(diào)整合適的尺寸或位置福压,這樣看起來比我們之前沒有設(shè)置窗口適配要美觀一些了,當然或舞,若是覺得窗口過大導(dǎo)致app看起來不是那么好看荆姆,我們也可以設(shè)置運行窗口的最大尺寸(與設(shè)置最小尺寸操作相同),示例如下圖

設(shè)置window的最大運行尺寸

我們這里設(shè)置都是通過autosizing 進行窗口適配的映凳,這既方便又直觀胆筒,但是如果想要更多和更復(fù)雜的控件適配和窗口適配,更推薦使用Auto Layout(與iOS 中使用Auto Layout一樣)诈豌,關(guān)于如何詳細使用Auto Layout已經(jīng)超出本篇內(nèi)容仆救,有興趣的同學(xué)可以自行參考iOS中的操作體驗一下。

Auto Layout 選項和設(shè)置

現(xiàn)在我們的Mac app 已經(jīng)能夠很好的適應(yīng)窗口變化矫渔,這樣的UI界面看起來比之前顯得專業(yè)和美觀了彤蔽,那么,還有什么其他要改進的來增強用戶體驗么庙洼?當然還有一些小細節(jié)需要處理顿痪,并不是太多。比如:

當編譯和運行后油够,如果我們沒有選中table view中的任何行蚁袭,點擊-按鈕(刪除行)或者Change Picture按鈕,應(yīng)用沒有任何反應(yīng)石咬,為了用戶體驗更好撕阎,我們需要在table view 沒有選中任何行的時候,禁止使用一些控件(-按鈕碌补,Change Picture按鈕以及text field 和rating view)虏束,如果table view 有選中的時候棉饶,再使得這些控件可以交互。

1.10 設(shè)置控件的enable默認屬性

設(shè)置控件的enable的默認屬性

同樣的方式镇匀,需要設(shè)置Change Picture按鈕和text field照藻,為了能夠使用這些控件,我們需要在view controller中為它們添加屬性

-按鈕添加到view controller 屬性連線(命名deleteButton)

設(shè)置Change Picture按鈕步驟同上汗侵,命名changePictureButton屬性幸缕,并在MasterViewController.m中的tableViewSelectionDidChange:實現(xiàn)如下代碼

控件代碼設(shè)置示例

最后一步,我們還需要設(shè)置EDStarRating控件晰韵,由于它是custom view发乔,因此不能在Interface Builder中設(shè)置enble屬性,我們需要使用代碼在viewDidLoad中實現(xiàn)默認禁用雪猪,注意栏尚,針對EDStarRating控件,我們設(shè)置的是editable這個值只恨,而不是enable

設(shè)置rating view的editable默認值

編譯運行后译仗,默認這些控件是不能使用的,當你選中一行后官觅,它們有可以正常使用了纵菌。你也可以嘗試讓整個詳情展示的部分默認隱藏,當選中table view 一行后休涤,再顯示詳情視圖部分咱圆,這個功能留給同學(xué)們自己練習(xí)吧

上手Mac 開發(fā)的所有代碼都可以從github 下載demo code。你可以嘗試各種不同的控件或者在工程中添加不同的功能功氨,例如保存一個用戶選中的數(shù)據(jù)到文件中序苏,使用 ?NSSavePanel詢問用戶需要保存的文件路徑,或者使用search field給用戶提供選中bug的列表

真心希望你喜歡這個上手Mac 開發(fā)的入門系列疑故,并且推薦同學(xué)們閱讀Apple’s Mac App Programming Guide文章獲得更多的幫助

最后編輯于
?著作權(quán)歸作者所有,轉(zhuǎn)載或內(nèi)容合作請聯(lián)系作者
  • 序言:七十年代末杠览,一起剝皮案震驚了整個濱河市,隨后出現(xiàn)的幾起案子纵势,更是在濱河造成了極大的恐慌踱阿,老刑警劉巖,帶你破解...
    沈念sama閱讀 222,183評論 6 516
  • 序言:濱河連續(xù)發(fā)生了三起死亡事件钦铁,死亡現(xiàn)場離奇詭異软舌,居然都是意外死亡,警方通過查閱死者的電腦和手機牛曹,發(fā)現(xiàn)死者居然都...
    沈念sama閱讀 94,850評論 3 399
  • 文/潘曉璐 我一進店門佛点,熙熙樓的掌柜王于貴愁眉苦臉地迎上來,“玉大人,你說我怎么就攤上這事超营≡妫” “怎么了?”我有些...
    開封第一講書人閱讀 168,766評論 0 361
  • 文/不壞的土叔 我叫張陵演闭,是天一觀的道長不跟。 經(jīng)常有香客問我,道長米碰,這世上最難降的妖魔是什么窝革? 我笑而不...
    開封第一講書人閱讀 59,854評論 1 299
  • 正文 為了忘掉前任,我火速辦了婚禮吕座,結(jié)果婚禮上虐译,老公的妹妹穿的比我還像新娘。我一直安慰自己吴趴,他們只是感情好漆诽,可當我...
    茶點故事閱讀 68,871評論 6 398
  • 文/花漫 我一把揭開白布。 她就那樣靜靜地躺著史侣,像睡著了一般拴泌。 火紅的嫁衣襯著肌膚如雪魏身。 梳的紋絲不亂的頭發(fā)上惊橱,一...
    開封第一講書人閱讀 52,457評論 1 311
  • 那天,我揣著相機與錄音箭昵,去河邊找鬼税朴。 笑死,一個胖子當著我的面吹牛家制,可吹牛的內(nèi)容都是我干的正林。 我是一名探鬼主播,決...
    沈念sama閱讀 40,999評論 3 422
  • 文/蒼蘭香墨 我猛地睜開眼颤殴,長吁一口氣:“原來是場噩夢啊……” “哼觅廓!你這毒婦竟也來了?” 一聲冷哼從身側(cè)響起涵但,我...
    開封第一講書人閱讀 39,914評論 0 277
  • 序言:老撾萬榮一對情侶失蹤杈绸,失蹤者是張志新(化名)和其女友劉穎,沒想到半個月后矮瘟,有當?shù)厝嗽跇淞掷锇l(fā)現(xiàn)了一具尸體瞳脓,經(jīng)...
    沈念sama閱讀 46,465評論 1 319
  • 正文 獨居荒郊野嶺守林人離奇死亡,尸身上長有42處帶血的膿包…… 初始之章·張勛 以下內(nèi)容為張勛視角 年9月15日...
    茶點故事閱讀 38,543評論 3 342
  • 正文 我和宋清朗相戀三年澈侠,在試婚紗的時候發(fā)現(xiàn)自己被綠了劫侧。 大學(xué)時的朋友給我發(fā)了我未婚夫和他白月光在一起吃飯的照片。...
    茶點故事閱讀 40,675評論 1 353
  • 序言:一個原本活蹦亂跳的男人離奇死亡,死狀恐怖烧栋,靈堂內(nèi)的尸體忽然破棺而出写妥,到底是詐尸還是另有隱情,我是刑警寧澤审姓,帶...
    沈念sama閱讀 36,354評論 5 351
  • 正文 年R本政府宣布耳标,位于F島的核電站,受9級特大地震影響邑跪,放射性物質(zhì)發(fā)生泄漏次坡。R本人自食惡果不足惜,卻給世界環(huán)境...
    茶點故事閱讀 42,029評論 3 335
  • 文/蒙蒙 一画畅、第九天 我趴在偏房一處隱蔽的房頂上張望砸琅。 院中可真熱鬧,春花似錦轴踱、人聲如沸症脂。這莊子的主人今日做“春日...
    開封第一講書人閱讀 32,514評論 0 25
  • 文/蒼蘭香墨 我抬頭看了看天上的太陽诱篷。三九已至,卻和暖如春雳灵,著一層夾襖步出監(jiān)牢的瞬間棕所,已是汗流浹背。 一陣腳步聲響...
    開封第一講書人閱讀 33,616評論 1 274
  • 我被黑心中介騙來泰國打工悯辙, 沒想到剛下飛機就差點兒被人妖公主榨干…… 1. 我叫王不留琳省,地道東北人。 一個月前我還...
    沈念sama閱讀 49,091評論 3 378
  • 正文 我出身青樓躲撰,卻偏偏與公主長得像针贬,于是被迫代替她去往敵國和親。 傳聞我的和親對象是個殘疾皇子拢蛋,可洞房花燭夜當晚...
    茶點故事閱讀 45,685評論 2 360

推薦閱讀更多精彩內(nèi)容