在線客服系統(tǒng)
十三年專注于網(wǎng)站建設(shè)與互聯(lián)網(wǎng)應(yīng)用開發(fā),低調(diào)、有情懷的網(wǎng)絡(luò)應(yīng)用服務(wù)商!
南昌百恒科技微信公眾號 掃一掃關(guān)注
tel-icon全國服務(wù)熱線:400-680-9298,0791-88117053
掃一掃關(guān)注百恒科技微信公眾號

IOS開發(fā)之靜態(tài)表與控制界面布局

百恒網(wǎng)絡(luò) 2018-11-06 15:59:03 2914
? ? ? ?分組表視圖的另外一個重要應(yīng)用就是控制布局,這類似于我們在HTML網(wǎng)頁中使用Table標(biāo)簽進(jìn)行頁面布局。圖1是蘋果官方的即時聊天工具iMessage應(yīng)用的登錄界面,如果這個界面沒有采用表視圖來控制布局,界面會非常難看。

? ? ? ?可以看到,圖1中的表視圖是一個靜態(tài)表,使用我們剛剛學(xué)到的知識就可以實現(xiàn)。我們需要將表視圖分為三組,第一組有兩個單元格,每一個單元格有一個文本框,文本框有輸出口;第二組有一個單元格,其中放置一個登錄按鈕;第三組有一個單元格,其中包含標(biāo)簽控件和擴展指示器。這些工作基本上都是通過代碼實現(xiàn)的,包括每一個控件的位置、動作事件等,這是一項比較繁重的工作。幸運的是,iOS 5之后的故事板技術(shù)可以幫助我們構(gòu)建靜態(tài)表。

? ? ? ?下面我們把圖1的界面簡化一下,采用靜態(tài)表技術(shù)實現(xiàn)如圖2所示的案例。

IOS開發(fā)之靜態(tài)表與控制界面布局一

? ? ? ?使用Single View Application模板創(chuàng)建一個名為StaticTableGroup的工程。打開Interface Builder設(shè)計界面,在View Controller Scene中刪除View Controller,然后從控件庫中拖曳一個Table View Controller到設(shè)計界面,設(shè)置界面Size Class的值為wCompact | hAny。

? ? ? ?接著選擇View Controller Scene→Table View,打開其屬性檢查器,如圖3所示,從Content下拉列表中選擇Static Cells(即靜態(tài)表),將Sections的值設(shè)為3(即3節(jié)),從Style下拉列表中選擇Grouped。

? ? ? ?然后再選擇View Controller Scene中的Section-1(選中第一節(jié)),打開它的屬性檢查器,如圖4所示,將Rows的值設(shè)為2,即該節(jié)中包含兩個單元格。我們還可以根據(jù)需要設(shè)定Header(節(jié)頭)和Footer(節(jié)腳),這里我們不設(shè)定Header和Footer。

IOS開發(fā)之靜態(tài)表與控制界面布局二

? ? ? ?再將兩個TextField控件分別拖曳到該節(jié)中的單元格上,如圖5所示。然后設(shè)置TextField控件的屬性,打開其屬性檢查器,如圖6所示,設(shè)置Placeholder為“用戶名”,Border Style為無邊框樣式。最后,不用忘記為TextField添加Auto Layout約束。

IOS開發(fā)之靜態(tài)表與控制界面布局三

? ? ? ?第一節(jié)中的第二個單元格是密碼,輸入的密碼需要掩碼顯示。參考第一個單元格,拖曳TextField控件并設(shè)置其屬性,然后選中Secure Text Entry復(fù)選框,如圖7所示。
? ? ? ?在靜態(tài)表的第二節(jié)中,有一個按鈕,可以按照上面的方法設(shè)定。
? ? ? ?在靜態(tài)表第三節(jié)的單元格中,有標(biāo)簽和擴展指示器,其中擴展指示器的設(shè)定如圖8所示。選擇Table View Controller Scene中的單元格,打開其屬性檢查器,從Accessory下拉列表中選擇Disclosure Indicator(擴展指示器)。
? ? ? ?最后,還要拖曳一個Label控件到單元格中,將其內(nèi)容設(shè)置為“創(chuàng)建新賬戶”。

IOS開發(fā)之靜態(tài)表與控制界面布局四

? ? ? ?這樣整個界面就設(shè)計好了,可以與圖2的效果對比一下。要完成該案例,還需要為登錄按鈕定義動作事件,為TextField定義輸出口,這些操作與普通控件一致,這里不再贅述。

? ? ? ?我們再看看代碼部分,ViewController的代碼如下:

IOS開發(fā)之靜態(tài)表與控制界面布局五

? ? ? ?在上述代碼中,login:方法用于響應(yīng)登錄按鈕的點擊事件,這里我們將登錄驗證規(guī)則“硬編碼”了。不知道大家是否發(fā)現(xiàn),上面的代碼沒有實現(xiàn)表視圖數(shù)據(jù)源的tableView:numberOfRowsInSection:和tableView:cellForRowAtIndexPath:方法。是的,在靜態(tài)表中可以不實現(xiàn)數(shù)據(jù)源和委托協(xié)議的方法。?

? ? ? ?關(guān)于靜態(tài)表與控制界面的布局就先介紹到這里,如果還有哪些不明白的地方,可隨時來電咨詢,百恒網(wǎng)絡(luò)專業(yè)為你解答!
400-680-9298,0791-88117053
掃一掃關(guān)注百恒網(wǎng)絡(luò)微信公眾號

歡迎您的光顧,我們將竭誠為您服務(wù)×

售前咨詢 售前咨詢
 
售前咨詢 售前咨詢
 
售前咨詢 售前咨詢
 
售前咨詢 售前咨詢
 
售前咨詢 售前咨詢
 
售后服務(wù) 售后服務(wù)
 
備案專線 備案專線
 
售后服務(wù) 售后服務(wù)
 
×