你好,歡迎來到IOS教程網

 Ios教程網 >> IOS編程開發 >> IOS開發綜合 >> ios 表視圖

ios 表視圖

編輯:IOS開發綜合

分組表中每個分組都是一個分區,在索引表中,每個索引都是一個分區。

實現一個簡單的表:

首先在xib文件中拖入一個tableview,將其dataSource和delegate連接到File‘s owner


@interface Hello_WorldViewController : UIViewController <UITableViewDelegate,UITableViewDataSource>{

}

上述代碼的作用是讓類遵循兩個協議,類需要這兩個協議來充當表現圖的委托和數據源,數據源提供了繪制表所需要的所有數據,委托用於配置表視圖的外觀
-(NSInteger)tableView:(UITableView *)tableView numberOfRowsInSection:(NSInteger)section
{
    return self.listData.count;
}
上述方法用來指明該section有幾個表項,默認section值為1

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

    static NSString *simpleTableIdentifier=@"simpleIdentifier";
    UITableViewCell *cell=[tableView dequeueReusableCellWithIdentifier:simpleTableIdentifier];
    if(cell==nil)
    {
        cell=[[UITableViewCell alloc] initWithFrame:CGRectZero reuseIdentifier:simpleTableIdentifier];
    }
    NSUInteger row=[indexPath row];
    cell.text=[self.listData objectAtIndex:row];
    return  cell;
}

上述函數用來繪cell,第一個參數是代表用來繪cell的發起者,第二個參數是indexPath,通過該參數我們可以得到section和row,

表視圖在iphone上一次只能顯示有限的幾行,但是表示圖的數據量可以是很大的,如果我們為每一行數據量分配一個cell,那麼開銷將非常大。

同時我們發現,有些cell是當前顯示,有些不是,當一個cell滾出屏幕時,另一些cell就會從另一邊滾到屏幕上,如果滾到屏幕上的cell重新使用滾出屏幕的cell,那麼系統就不會為創建或刪除一個新的cell而浪費空間與時間。我們用simpleTalbeIdentifier來標示每個cell,調用[tableView dequeueReusableCellWithIdentifier:simpleTableIdentifier] ,看有這個標示的cell是否以前在可重用隊列中出現過,如果有那直接使用即可,如果沒有則為nil,cell=[[UITableViewCell alloc] initWithFrame:CGRectZero reuseIdentifier:創建新的cell。

-(void)tableView:(UITableView *)tableView didDeselectRowAtIndexPath:(NSIndexPath *)indexPath
{
    NSUInteger section=[indexPath row];
    NSLog(@"setion is %d",section);
    NSString *rowValue=[self.listData objectAtIndex:section];
    UIAlertView *alertView=[[UIAlertView alloc] initWithTitle:@"你選擇的是" message:rowValue delegate:nil cancelButtonTitle:@"取消" otherButtonTitles:nil];
    [alertView show];
}
 上述方法表示點擊一個cell時調用

-(CGFloat)tableView:(UITableView *)tableView heightForRowAtIndexPath:(NSIndexPath *)indexPath
{
    return 100;
}

上述方法根據indexPath給出每個cell的高度

 

  1. 上一頁:
  2. 下一頁:
蘋果刷機越獄教程| IOS教程問題解答| IOS技巧綜合| IOS7技巧| IOS8教程
Copyright © Ios教程網 All Rights Reserved