日韩性视频-久久久蜜桃-www中文字幕-在线中文字幕av-亚洲欧美一区二区三区四区-撸久久-香蕉视频一区-久久无码精品丰满人妻-国产高潮av-激情福利社-日韩av网址大全-国产精品久久999-日本五十路在线-性欧美在线-久久99精品波多结衣一区-男女午夜免费视频-黑人极品ⅴideos精品欧美棵-人人妻人人澡人人爽精品欧美一区-日韩一区在线看-欧美a级在线免费观看

歡迎訪問 生活随笔!

生活随笔

當前位置: 首頁 > 编程资源 > 编程问答 >内容正文

编程问答

【iOS7一些总结】9、与列表显示(在):列表显示UITableView

發(fā)布時間:2023/12/19 编程问答 21 豆豆
生活随笔 收集整理的這篇文章主要介紹了 【iOS7一些总结】9、与列表显示(在):列表显示UITableView 小編覺得挺不錯的,現(xiàn)在分享給大家,幫大家做個參考.

列表顯示,顧名思義它是在一個列表視圖的形式顯示在屏幕上的數(shù)據(jù)的內(nèi)容。于ios在列表視圖UITableView達到。這個類在實際應(yīng)用中頻繁,是很easy理解。這里將UITableView的主要使用方法總結(jié)一下以備查。

UITableView定義在頭文件UITableView.h中,詳細的定義能夠查看官方文檔;從定義中能夠看出,UITableView繼承自UIScrollView類,因此在支持方便地顯示列表數(shù)據(jù)的同一時候,還天生支持垂直滾動操作。

組成列表的每個元素稱為UITableViewCell實例。

一個UITableViewCell也是應(yīng)用很廣泛的類,定義可見官方文檔。

在詳細的使用過程中,能夠創(chuàng)建一個獨立的UITableView,也能夠直接創(chuàng)建一個UITableViewController。這里主要記錄創(chuàng)建UITableView的方法,下篇記錄通過列表視圖控制器使用UITableView。

UITableView類中定義了style屬性:

@property(nonatomic, readonly) UITableViewStyle style每個UITableView都能夠選擇兩種style之中的一個。即分組模式和平面模式。這兩種模式定義在枚舉變量UITableViewStyle中:

typedef enum {UITableViewStylePlain,UITableViewStyleGrouped } UITableViewStyle;

每個列表視圖的組成都是相似的,都是由一個表頭視圖+表體+表尾視圖構(gòu)成。當中表頭和表尾兩個視圖默覺得nil。須要時能夠創(chuàng)建自己定義視圖加入到表頭和表尾。定義例如以下:

@property(nonatomic, retain) UIView *tableHeaderView; @property(nonatomic, retain) UIView *tableFooterView;除表頭和表尾之外,表體則由一串UITableViewCell(以下簡稱cell)構(gòu)成。假設(shè)是分組表視圖。則多個UITableViewCell構(gòu)成一個section,每一個section也有頭和尾視圖。

以下簡單新建一個demo展示一下怎樣創(chuàng)建一個UITableView。

這里假定大家都了解xcode的基本操作,所以就不再一步一步地截圖了,簡單敘述就可以。不懂得能夠去百度一下“xcode新建project”。

新建一個single view application。在新生成的ViewController.m文件里重寫loadView方法,新建一個UITableView視圖。

(別忘了把alloc的視圖在dealloc函數(shù)中釋放。)

- (void)loadView {CGFloat width = [UIScreen mainScreen].bounds.size.width;CGFloat height = [UIScreen mainScreen].bounds.size.height;UIView *backgroundView = [[UIView alloc] initWithFrame:CGRectMake(0, 0, width,height)];self.view = backgroundView;_tableView = [[UITableView alloc] initWithFrame:CGRectMake(0, 0, width, height) style:UITableViewStylePlain];[self.view addSubview:_tableView];[_tableView release]; }
編譯執(zhí)行。顯演示樣例如以下圖:


表視圖的協(xié)議方法——這是很重要的部分,由于我們創(chuàng)建一個表視圖,目的就是讓視圖能夠顯示數(shù)據(jù),否則一個空空的表視圖與廢物無二。表視圖所定義的協(xié)議方法由代理方法delegate和數(shù)據(jù)源方法data source方法組成。

托付方法一般用于實現(xiàn)個性化處理表視圖的基本樣式(如單元格的高度等)以及捕捉單元格選中的響應(yīng)。數(shù)據(jù)源方法用于完畢表中的數(shù)據(jù)。如指定單元格數(shù)。以及創(chuàng)建每個單元格。

要實現(xiàn)代理和數(shù)據(jù)源方法。首先須要讓當前視圖控制器支持UITableViewDelegate和UITableViewDataSource協(xié)議。做例如以下改動:

@interface ViewController : UIViewController<UITableViewDelegate,UITableViewDataSource>而且在tableView創(chuàng)建完畢后,將tableView的delegate和dataSource設(shè)置為self,即托付給當前視圖控制器來控制表視圖的數(shù)據(jù)顯示和響應(yīng)。

_tableView.delegate = self; _tableView.dataSource = self;

delegate和data source協(xié)議有兩個方法是必須實現(xiàn)的:

- (UITableViewCell *)tableView:(UITableView *)tableView cellForRowAtIndexPath:(NSIndexPath *)indexPath; - (NSInteger)tableView:(UITableView *)tableView numberOfRowsInSection:(NSInteger)section;這兩個方法分別用于生成每個cell。以及指定當前section共同擁有多少行。

實現(xiàn)這兩個方法是想要在表視圖中顯示數(shù)據(jù)必須實現(xiàn)的最低要求。

我們在視圖控制器頭文件里聲明一個NSArray *model(retain屬性),并在viewDidLoad中將[UIFont familyNames]賦給這個屬性。

在視圖控制器中實現(xiàn)這兩個代理方法:

- (NSInteger)tableView:(UITableView *)tableView numberOfRowsInSection:(NSInteger)section {return [_model count]; }- (UITableViewCell *)tableView:(UITableView *)tableView cellForRowAtIndexPath:(NSIndexPath *)indexPath {static NSString *identify = @"TableViewCell";UITableViewCell *cell = [tableView dequeueReusableCellWithIdentifier:identify];if (nil == cell){cell = [[UITableViewCell alloc] initWithStyle:UITableViewCellStyleDefault reuseIdentifier:identify];cell.textLabel.text = self.model[indexPath.row];}return cell; }在cellForRowAtIndexPath方法中,首先會檢查是否有閑置的單元格,假設(shè)沒有閑置的單元格。則會新建一個cell并將其返回。參數(shù)indexPath表示眼下正在創(chuàng)建的單元格位于整個表視圖的第幾行。
編譯。執(zhí)行,顯示結(jié)果:


假設(shè)希望實現(xiàn)對選中某個單元格的響應(yīng),僅僅須要實現(xiàn)以下代理方法就可以。在代理方法中能夠?qū)崿F(xiàn)創(chuàng)建新的視圖控制器并控制其載入到屏幕上。

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

版權(quán)聲明:本文博主原創(chuàng)文章,博客,未經(jīng)同意不得轉(zhuǎn)載。

總結(jié)

以上是生活随笔為你收集整理的【iOS7一些总结】9、与列表显示(在):列表显示UITableView的全部內(nèi)容,希望文章能夠幫你解決所遇到的問題。

如果覺得生活随笔網(wǎng)站內(nèi)容還不錯,歡迎將生活随笔推薦給好友。