溫馨提示×

溫馨提示×

您好,登錄后才能下訂單哦!

密碼登錄×
登錄注冊×
其他方式登錄
點擊 登錄注冊 即表示同意《億速云用戶服務條款》

UITableView的使用

發(fā)布時間:2020-06-22 05:55:48 來源:網絡 閱讀:713 作者:wodenianshao 欄目:開發(fā)技術


UITableView的使用 

    今天凌晨,蘋果召開2015年新品發(fā)布會。iPhone6siPhone6s Plus,以及iPad Pro、新Apple TV會與我們見面,據(jù)悉,iPhone 6siPhone6s Plus將會在918日正式發(fā)售。

 UITableView的使用

    表格視圖控制器,它是一個是視圖控制器的對象管理一個表視圖。

一個iphone表格由三種東西構成:一個視圖,一個數(shù)據(jù)源和一個委托。

數(shù)據(jù)源:它是用于管理可見的UITableview及其數(shù)據(jù)之間關系-UITableviewDataSource協(xié)議中的方法提供表格的區(qū)域,行數(shù),頂部和底部的標題,以及每個單元格的內容等。其中有兩個方法必須實現(xiàn):tableView:numberOfRowsInSection:tableView:cellforRowAtIndexPath:

委托:控制表格的視覺外觀和行為-UITableviewDelegate協(xié)議的對象會收到從多用戶活動的通知,如選擇一個單元格,編輯單元格等操作。通常我們需要實現(xiàn)tableViewdidSelectRowAtIndexpath

 

數(shù)據(jù)源方法:

//不重寫默認返回1

-(NSInteger)numberOfSectionsInTableView:(UITableView *)tableView{

    return 1;

}

//tableview一個區(qū)域顯示多少行

-(NSInteger)tableView:(UITableView *)tableView numberOfRowsInSection:(NSInteger)section{

    return [dataSourceArray count];

}

//填充數(shù)據(jù)

-(UITableViewCell*)tableView:(UITableView *)tableView cellForRowAtIndexPath:(NSIndexPath *)indexPath{

//    addMovies = [[Movie alloc]init];

//    addMovies.movieName = avcc.Addmovies.movieName;

//    addMovies.movieMoney = avcc.Addmovies.movieMoney;

//    addMovies.movieDescription = avcc.Addmovies.movieDescription;

//    [dataSourceArray addObject:addMovies];

    static NSString* Cellidentifer = @"cell";

    //cell的重用

//    UITableViewCell* cell = [tableView dequeueReusableCellWithIdentifier:Cellidentifer];

    //系統(tǒng)

//    addMovies.movieName = 

    MyCell* cell = [tableView dequeueReusableCellWithIdentifier:Cellidentifer];

    //自定義

    if (cell==nil) {

        //初始化一個cell

        //這里的style是一個枚舉

        cell = [[MyCell alloc]initWithStyle:0 reuseIdentifier:Cellidentifer];

        //這里是在最后面加一個->

        cell.accessoryType = UITableViewCellAccessoryDisclosureIndicator;

    }

    

    NSLog(@"%@",[dataSourceArray objectAtIndex:indexPath.row]);

//    cell.textLabel.text = [dataSourceArray objectAtIndex:indexPath.row];

    Movie* movie = [dataSourceArray objectAtIndex:[indexPath row]];

//    NSString* strMoney = [NSString stringWithFormat:@"%d",movie.movieMoney];

    NSLog(@"%d",[indexPath row]);

    NSLog(@"%@",[dataSourceArray objectAtIndex:[indexPath row]]);

    cell.Moviep_w_picpath.p_w_picpath = [UIImage p_w_picpathNamed:movie.movieImage];

    cell.MovieMoney.text = movie.movieMoney;

    cell.MovieName.text = movie.movieName;

    cell.MovieDescription.text = movie.movieDescription;

    

    return cell;

}

 

單元格重用機制

//填充數(shù)據(jù)

-(UITableViewCell*)tableView:(UITableView *)tableView cellForRowAtIndexPath:(NSIndexPath *)indexPath{

//    addMovies = [[Movie alloc]init];

//    addMovies.movieName = avcc.Addmovies.movieName;

//    addMovies.movieMoney = avcc.Addmovies.movieMoney;

//    addMovies.movieDescription = avcc.Addmovies.movieDescription;

//    [dataSourceArray addObject:addMovies];

    static NSString* Cellidentifer = @"cell";

    //cell的重用

//    UITableViewCell* cell = [tableView dequeueReusableCellWithIdentifier:Cellidentifer];

    //系統(tǒng)

//    addMovies.movieName = 

    MyCell* cell = [tableView dequeueReusableCellWithIdentifier:Cellidentifer];

    //自定義

    if (cell==nil) {

        //初始化一個cell

        //這里的style是一個枚舉

        cell = [[MyCell alloc]initWithStyle:0 reuseIdentifier:Cellidentifer];

        //這里是在最后面加一個->

        cell.accessoryType = UITableViewCellAccessoryDisclosureIndicator;

    }

    

    NSLog(@"%@",[dataSourceArray objectAtIndex:indexPath.row]);

//    cell.textLabel.text = [dataSourceArray objectAtIndex:indexPath.row];

    Movie* movie = [dataSourceArray objectAtIndex:[indexPath row]];

//    NSString* strMoney = [NSString stringWithFormat:@"%d",movie.movieMoney];

    NSLog(@"%d",[indexPath row]);

    NSLog(@"%@",[dataSourceArray objectAtIndex:[indexPath row]]);

    cell.Moviep_w_picpath.p_w_picpath = [UIImage p_w_picpathNamed:movie.movieImage];

    cell.MovieMoney.text = movie.movieMoney;

    cell.MovieName.text = movie.movieName;

    cell.MovieDescription.text = movie.movieDescription;

    

    return cell;

}

UITableView中顯示的每一個單元都是一個UITableview對象,它的初始化函數(shù)initWithStylereuseIdentifier:比較特別,跟我們平時看到的UIView的初始化函數(shù)不同。這個主要是為了效率考慮,因為在tableview快速滑動的過程中,頻繁的alloc對象是比較費時的,于是引入cell的重用機制,這個也是我們在打他source中要重點注意的地方,用好重用機制會讓我們的tableView滑動起來更加流暢。

 

static NSString* Cellidentifer = @"cell";

定義一個靜態(tài)字符串常量,用于指定cell的標示符.

UITableViewCell* cell = [tableView dequeueReusableCellWithIdentifier:Cellidentifer];

從表格視圖中獲取帶標示符的空閑(未顯示)的cell,如果有則獲得cell,否則cellnil

if (cell==nil) {

        //初始化一個cell

        //這里的style是一個枚舉

        cell = [[MyCell alloc]initWithStyle:0 reuseIdentifier:Cellidentifer];

        //這里是在最后面加一個->

        cell.accessoryType = UITableViewCellAccessoryDisclosureIndicator;

    }

如果從表格視圖中獲取不到可用的cell,則alloc出一個新的cell,并設置標示符。

 

UITableViewCell

單元格顯示類型:

typedef enum{

UITableViewStyleDefault;       à0

UITableViewCellStyleValue1;    à1

UITableViewcellStyleValue2;    à2

UITableViewCellStyleSubtitle;  à3

}



UITableView的使用

UITableView的使用

 

 

 

單元格的輔助圖標類型

  //這里是在最后面加一個->

        cell.accessoryType = UITableViewCellAccessoryDisclosureIndicator;

 

UITableView的使用

UITableView的使用


 

 

編輯單元格(增,刪,移動)

1. 設置tableview的編輯模式:

 

UITableView的使用

UITableView的使用

UITableView的使用

UITableView的使用

UITableView的使用


 

 

 

 

 

選中單元格—>進入二級視圖進行修改信息

 

UITableView的使用

UITableView的使用

 

 

更新單元格內容

UITableView的使用

UITableView的使用

 

 

 

 

 

 

需要先引入協(xié)議

 

UITableView的使用

UITableView的使用

 

 

 

分段按鈕實現(xiàn)

 

 

UITableView的使用

UITableView的使用

UITableView的使用

UITableView的使用


 

 

 

 

 

 

自定義單元格

 

 

UITableView的使用

UITableView的使用

UITableView的使用

UITableView的使用

UITableView的使用

UITableView的使用

UITableView的使用


 

 

UITableView的使用

UITableView的使用


 

 

 

 

 

 

 

 


向AI問一下細節(jié)

免責聲明:本站發(fā)布的內容(圖片、視頻和文字)以原創(chuàng)、轉載和分享為主,文章觀點不代表本網站立場,如果涉及侵權請聯(lián)系站長郵箱:is@yisu.com進行舉報,并提供相關證據(jù),一經查實,將立刻刪除涉嫌侵權內容。

AI