@interfaceSimpleT" />

亚洲免费在线-亚洲免费在线播放-亚洲免费在线观看-亚洲免费在线观看视频-亚洲免费在线看-亚洲免费在线视频

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

系統 2527 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條評論
主站蜘蛛池模板: 九九热在线视频观看这里只有精品 | 波多野结中文字幕在线69视频 | 国产精品高清久久久久久久 | 欧美亚洲精品在线 | 欧美天天影院 | 久艹伊人 | 欧美成人另类69 | 亚洲天堂久久精品 | 97se亚洲综合 | 快射视频网 | 欧美在线视频网站 | 午夜欧美精品久久久久久久 | 日本最新在线 | 国产亚洲一欧美一区二区三区 | 伊人久久综合视频 | 久久制服诱惑 | 欧美成人精品福利在线视频 | 国产乳摇福利视频在线观看 | 曰本一级毛片免费 | 思思久久99热这里只有精品66 | 亚洲综合狠狠 | 99视频在线免费 | 色偷偷成人网免费视频男人的天堂 | 人成精品视频三区二区一区 | 国产女人水多毛片18 | 夜夜爱夜夜做 | 国产综合欧美日韩视频一区 | 欧美精品影院 | 真人女人一级毛片免费视频观看 | 久久久久久久久一级毛片 | 亚洲综合色婷婷中文字幕 | 国产亚洲精品美女久久久 | 毛片色 | 老妇女性较大毛片 | 男女午夜影院 | 摸逼综合网 | 久久一区不卡中文字幕 | 久久久久综合 | 青青青手机版视频在线观看 | 亚洲女人国产香蕉久久精品 | 精品国产区|