@interfaceSimpleT" />

欧美三区_成人在线免费观看视频_欧美极品少妇xxxxⅹ免费视频_a级毛片免费播放_鲁一鲁中文字幕久久_亚洲一级特黄

【一步一步學IOS5 】 處理UITableView中的行選擇

系統 2585 0

下面,我們將嘗試對先前的demo做如下變化:

?

(1)當用戶點擊一行時,顯示一個提醒消息

?

(2)當用戶選擇了一行時,顯示一個選中的標志

?

1.理解UITableViewDelegate

?

在我們創建Simple Table View 應用程序時,我們在SimpleTableController.h 中定義了2個委托(UITableViewDelegate 和 UITableViewDataSource):

?

#import<UIKit/UIKit.h>

?

@interface SimpleTableViewController : UIViewController <UITableViewDelegate, UITableViewDataSource>

?

@end

?

2個委托在Object-C 中稱為協議(protocol). 當創建了UITableView,你必須遵守這些協議中定義的要求。

?

在IOS編程中,遇到不同的委托是非常常見的。每一個委托負責特定的角色或任務,保持系統的簡潔。任何時候在一個對象需要完成特定任務時,它依賴于另外一個對象去負責處理。這個在系統設計領域通常稱為關注點分離(Separation of Concern).

?

當你分析UITableView 類時,它也應用了這一設計概念。這2個委托迎合了不同的目標。我們實現的UITableViewDataSource 委托定義了方法,用來顯示表數據;另一方面,UITableViewDelegate 委托則負責處理 UITableView界面和行選擇。

?

顯然,我們將使用UITableViewDelegate委托,來實現處理行選擇的方法。

?

2.處理表視圖行選擇(Table Row Selection)

?

在更改代碼之前,我們需要知道:

?

我們怎么知道UITableViewDelegate中的哪一個方法需要實現?

?

你需要參考Apple的iOS programming reference 文檔,有2種方法可以訪問該文檔。你可以選擇Apple網站的API文檔,或者直接在Xcode 中查詢。

?

如果讀完文檔,你將發現如下方法用來管理行選擇:

?

- tableView:willSelectRowAtIndexPath:

- tableView:didSelectRowAtIndexPath:

?

2個方法都用于行選擇。唯一的區別是:在行將要選擇的時候,調用willSelectRowAtIndexPath方法。通常,你可以使用這個方法來阻止選定特定的行。一般情況下,你使用didSelectRowAtIndexPath 方法,在用戶選擇一行時,調用這個方法去負責行選擇。在這個方法里面,添加代碼來指定具體業務行為,在行選擇的時候調用。

?

在本例子中,我們將添加一些動作來處理行選擇:

?

1)顯示警告消息

2)顯示一個勾選標志,表示改行已經選擇

?

3.coding start!

?

現在我們解釋足夠清楚了,接下來開始進入有趣的部分 - code, code, code !

?

在Xcode 中,打開 SimpleTableViewController.m? 文件, 在@end 指令之前添加如下方法:

?

?

- ( void )tableView:( UITableView *)tableView didSelectRowAtIndexPath:( NSIndexPath *)indexPath

{

? ? UIAlertView *messageAlert = [[ UIAlertView alloc ] initWithTitle : @" 行選擇 " message : @" 你已經選擇一行! " delegate: nil cancelButtonTitle : @" 確定 " otherButtonTitles: nil ];

? ? [messageAlert show ];

}

?

代碼非常容易理解。在選擇一行時,App 創建一個 UIAlertView 對象,并彈出一個警告消息。再次運行App,當你輕拍一行時,App顯示如下圖所示:

?


【一步一步學IOS5 】 處理UITableView中的行選擇

?

下面是改進之后的中文菜單顯示效果圖:

?


【一步一步學IOS5 】 處理UITableView中的行選擇

?

?

我們修改代碼入下

?

?

- ( void )tableView:( UITableView *)tableView didSelectRowAtIndexPath:( NSIndexPath *)indexPath

{

? ? NSString *message = [ tableData objectAtIndex :indexPath. row ];

? ? UIAlertView *messageAlert = [[ UIAlertView alloc ] initWithTitle : @" 行選擇 " message :message delegate : nil cancelButtonTitle : @" 確定 " otherButtonTitles : nil ];

? ? [messageAlert show ];

}



這樣填出框就會顯示菜譜的名字了


【一步一步學IOS5 】 處理UITableView中的行選擇
?

接著,我們將添加一些代碼,顯示所選擇行的標志。在開始之前,讓我們看看一個表格單元格默認內容:


【一步一步學IOS5 】 處理UITableView中的行選擇
?
一個單元格分為3部分:

圖像(縮略圖) - 左側部分保留顯示縮略圖,就像我們之前在Simple Table 應用程序中實現的一樣

內容 - 主要部分用來顯示文本標簽和相信內容

附件視圖 (Accessory View) - 右側部分保留為附件視圖。 有3類默認的附件視圖,包括 Disclosure 標示符、
Detail Disclosure 標示符和Check Mark(選中標示),下圖顯示了這些標示符的效果:


【一步一步學IOS5 】 處理UITableView中的行選擇
?
在行選擇之后,為了顯示選中標志,僅需要在[messageAlert show] 代碼之后,添加如下2行代碼:

? ?? UITableViewCell *cell = [tableView cellForRowAtIndexPath :indexPath];

? ? cell. accessoryType = UITableViewCellAccessoryCheckmark ;

?

第一行通過使用indexPath獲得選中表的單元格,

第二行更新選中單元格的附件視圖為選中標志(Check Mark)

?

編譯運行App,在你輕拍一行后,將顯示一個選擇標志(Check Mark)

?


【一步一步學IOS5 】 處理UITableView中的行選擇

現在,當你選擇一行時,將以藍色突出顯示改行,如果你不喜歡,可以添加如下代碼取消這一效果:

?

[tableView deselectRowAtIndexPath :indexPath animated : YES ];



【一步一步學IOS5 】 處理UITableView中的行選擇
?
?


?

【一步一步學IOS5 】 處理UITableView中的行選擇


更多文章、技術交流、商務合作、聯系博主

微信掃碼或搜索:z360901061

微信掃一掃加我為好友

QQ號聯系: 360901061

您的支持是博主寫作最大的動力,如果您喜歡我的文章,感覺我的文章對您有幫助,請用微信掃描下面二維碼支持博主2元、5元、10元、20元等您想捐的金額吧,狠狠點擊下面給點支持吧,站長非常感激您!手機微信長按不能支付解決辦法:請將微信支付二維碼保存到相冊,切換到微信,然后點擊微信右上角掃一掃功能,選擇支付二維碼完成支付。

【本文對您有幫助就好】

您的支持是博主寫作最大的動力,如果您喜歡我的文章,感覺我的文章對您有幫助,請用微信掃描上面二維碼支持博主2元、5元、10元、自定義金額等您想捐的金額吧,站長會非常 感謝您的哦!!!

發表我的評論
最新評論 總共0條評論
主站蜘蛛池模板: 国产99久久精品一区二区永久免费 | 国产一级特黄毛片在线毛片 | 日韩啊v| 色综合天天综一个色天天综合网 | 久久久久女人精品毛片 | 久久久久久影院 | 色综合色综合色综合色综合 | 一级做a爰片性色毛片男 | 精品午夜寂寞影院在线观看 | 特一级毛片 | 99久久久精品国产一区二区 | 99精品国产一区二区青青牛奶 | 国产日韩一区二区三区 | 日本午夜视频 | 日本草草影院 | 国产大伊香蕉精品视频 | 欧美精品一区二区免费 | 天天做天天爽 | 91精品久久久久久综合五月天 | 天天天天天操 | 欧美在线一区二区三区 | 天天舔| 国产二区视频 | 蜜桃日本免费MV免费播放 | 最新日本中文字幕在线观看 | 免费看一区二区三区 | 日本一级成人毛片免费观看 | 九九热在线免费观看 | 99这里只有精品视频 | 高清国语自产拍免费视频国产 | 国偷自产av一区二区三区 | 91免费国产| 亚洲成人精品 | 免费高清seyeye在线视频观看 | 国产chinese视频在线观看 | 亚洲欧美天堂综合久久 | 亚洲欧美在线视频 | 视频一区二区三区四区五区 | 国产成人影院 | 久久激情综合色丁香 | 成人激情视频在线观看 |