2014-03-19 61 views
0

我已按升序對數組排序。我需要顯示要着色的表格的第一個值。我怎樣才能做到這一點如何將第一個值設置爲表格顏色

我的代碼是:

NSSortDescriptor *descriptor = [[NSSortDescriptor alloc] initWithKey:@"isDefault" ascending:NO]; 
sortedArray = [beneficiariesArray sortedArrayUsingDescriptors:[NSArray arrayWithObject:descriptor]]; 
NSLog(@"This is Sorted Array %@",sortedArray); 


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

{ 
    static NSString *simpleTableIdentifier = @"SimpleTableItem";  
    UITableViewCell *cell = [tableView dequeueReusableCellWithIdentifier:simpleTableIdentifier];  
    if (cell == nil) 
    {  
     cell = [[UITableViewCell alloc] initWithStyle:UITableViewCellStyleDefault reuseIdentifier:simpleTableIdentifier];  
     cell.accessoryType = UITableViewCellAccessoryDisclosureIndicator; 
    } 
    cell.textLabel.text = [[sortedArray objectAtIndex:indexPath.row] objectForKey:@"Fullname"]; 
    return cell; 
} 

回答

0

您可以通過使用indexPath.rowcellForRowAtIndexPath:方法對其進行設置。

替換下面的代碼:

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

{ 
    static NSString *simpleTableIdentifier = @"SimpleTableItem";  
    UITableViewCell *cell = [tableView dequeueReusableCellWithIdentifier:simpleTableIdentifier];  
    if (cell == nil) 
    {  
     cell = [[UITableViewCell alloc] initWithStyle:UITableViewCellStyleDefault reuseIdentifier:simpleTableIdentifier];  
     cell.accessoryType = UITableViewCellAccessoryDisclosureIndicator; 
    } 

    if(indexPath.row == 0) 
    cell.textLabel.textColor = [UIColor redColor]; // set color as you want. 

    cell.textLabel.text = [[sortedArray objectAtIndex:indexPath.row] objectForKey:@"Fullname"]; 

    return cell; 
} 
+0

我這樣做,但價值後,我滾動 – iOSDeveloper

+0

@ VMC501 - 哪個值?而且tableView是可滾動的希望你知道它。 – iPatel

+0

第一個值令人失望。它看起來很好,當我不滾動 – iOSDeveloper

1

cellForRowAtIndexPath方法。爲第一個值設置顏色。

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

{ 

static NSString *simpleTableIdentifier = @"SimpleTableItem"; 

UITableViewCell *cell = [tableView dequeueReusableCellWithIdentifier:simpleTableIdentifier]; 

if (cell == nil) 

{ 
cell = [[UITableViewCell alloc] initWithStyle:UITableViewCellStyleDefault reuseIdentifier:simpleTableIdentifier]; 

cell.accessoryType = UITableViewCellAccessoryDisclosureIndicator; 

} 
if(indexPath.row==0) 
{ 
cell.textLabel.textColor=[UIColor greenColor]; 
// or you can set background as cell.backgroundColor=[UIColor blackColor]; 
} 
cell.textLabel.text = [[sortedArray objectAtIndex:indexPath.row] objectForKey:@"Fullname"]; return cell; 
} 
2
Here it try it in cellForRowAtIndexPath 
if(indexPath.row == row number) 
{ 
cell.backGroundColor = [UIColor anycolor]; // set color as you want. 
} 

行數提供要顯示的顏色和欣彩鍵入可用的colorname值。

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

{ 
    static NSString *simpleTableIdentifier = @"SimpleTableItem"; 
    UITableViewCell *cell = [tableView dequeueReusableCellWithIdentifier:simpleTableIdentifier]; 
    if (cell == nil) 
    { 
     cell = [[UITableViewCell alloc] initWithStyle:UITableViewCellStyleDefault reuseIdentifier:simpleTableIdentifier]; 
     cell.accessoryType = UITableViewCellAccessoryDisclosureIndicator; 
    } 

    if (indexPath.section ==0 && indexPath.row == 0) { 

     // do your stuff. 

     cell.textLabel.textColor = [UIColor greenColor]; 

    }else{ 

     // normal stuff 

     cell.textLabel.textColor = [UIColor blackColor]; 
    } 


    cell.textLabel.text = [[sortedArray objectAtIndex:indexPath.row] objectForKey:@"Fullname"]; 

    return cell; 
} 
0

你需要簡單地檢查細胞指數值是這樣的:

if (indexPath.row == 0) 
{ 
    // Place your logic 
} 
1
  1. 確保您已連接您的表視圖的委託和數據源。
  2. 在你的cellForRowAtIndexPath中使用這個。

    如果(indexPath.row == 0)

    cell.textLabel.textColor = [的UIColor redColor];

1

有一個可見細胞的屬性。

因此您可以始終設置第一個單元格的顏色。

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

{ 
    static NSString *simpleTableIdentifier = @"SimpleTableItem";  
    UITableViewCell *cell = [tableView dequeueReusableCellWithIdentifier:simpleTableIdentifier];  
    if (cell == nil) 
    {  
     cell = [[UITableViewCell alloc] initWithStyle:UITableViewCellStyleDefault reuseIdentifier:simpleTableIdentifier];  
     cell.accessoryType = UITableViewCellAccessoryDisclosureIndicator; 
    } 

    [[tableView.visibleCells objectAtIndex:0] setBackgroundColor:[UIColor redColor]]; //This line changes color for first visible cell 
    [[tableView.visibleCells objectAtIndex:1] setBackgroundColor:[UIColor clearColor]]; //This line clears the color of second cell if scrolling in upward direction. 

    cell.textLabel.text = [[sortedArray objectAtIndex:indexPath.row] objectForKey:@"Fullname"]; 

    return cell; 
} 
相關問題