开发者

how to change the color alternate cell on table view

I want to display data on table view cell from the database so I want to give the color to cell according to data means for 1st cell gray then next two开发者_运维知识库 cells in brown again I want display gray cell, so can anyone tell me what is the simplest procedure for it?


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

    if (indexPath.row % 2 == 0) {
        [cell setBackgroundColor:[UIColor whiteColor]];
    }
    else {
        [cell setBackgroundColor:[UIColor lightGrayColor]];
    }
}


- (UITableViewCell *)tableView:(UITableView *)tableView cellForRowAtIndexPath:(NSIndexPath *)indexPath
{
    if (indexPath.row % 2==0) 
    {
         cell.contentView.backgroundColor = [UIColor grayColor];  // first color (greyColor or grayColor can't remember spelling)
    }
    else 
    {
         cell.contentView.backgroundColor = [UIColor brownColor];  // second color
    }
}


Try this.

if(indexPath.row % 2 == 0)
{
[cell setBackgroundColor:[UIColor grayColor]];
}   
else
[cell setBackgroundColor:[UIColor brownColor]];


Use below code.

- (UITableViewCell *)tableView:(UITableView *)tableView cellForRowAtIndexPath:(NSIndexPath *)indexPath
    {
        static int alternateColor = 0;

        if((alternateColor % 2) == 0 ) 
        {
             cell.contentView.backgroundColor = [UIColor whiteColor];  
        }
        else 
        {
             cell.contentView.backgroundColor = [UIColor blackColor];
        }
       alternateColor++;
    }


If you mean cell's background color, the simplest way to change it:

cell.backgroundView.backgroundColor = [UIColor greenColor];

It looks like:

- (UITableViewCell *) tableView:tableView cellForRowAtIndexPath:indexPath
{
    cell = ... // dequeue or initialize cell
    switch (criteriaFromDatabase) 
    {            
        case 0:
            cell.backgroundView.backgroundColor = [UIColor greenColor];
            break;
        case 1:
            cell.backgroundView.backgroundColor = [UIColor blueColor];
            break;
        default:
            cell.backgroundView.backgroundColor = [UIColor redColor];
            break;
    }
    return cell;
}



write below code

- (UITableViewCell *)tableView:(UITableView *)tableView cellForRowAtIndexPath:(NSIndexPath *)indexPath
{
    if (indexPath.row%2==0) 
    {
        //Write your code for even rows like 0,2,4
    }
    else 
    {
         //write your code for odd rows like 1,3,5
    }
}


Priyanka, If it's alternating the color of cell then you can use
if(indexPath.row % 2 == 0) { cell.contentView.backgroundColor = [UIColor grayColor]; } else cell.backgroundColor = [UIColor brownColor];

and if the colors are random i.e. first one is gray, second and third is brown and forth one white etc. etc. then you should make an array of UIColor objects, like

NSArray *arryColor = [NSArray arrayWithObject:[UIColor grayColor],[UIColor brownColor],[UIColor  brownColor],[UIColor  whiteColor],[UIColor  redColor],[UIColor  greenColor],nil];

and then in the method

- (UITableViewCell *) tableView:tableView cellForRowAtIndexPath:indexPath
    {
        // your cell creating stuff


        cell.contentView.backgroundColor = [arryColor objectAtIndex:indexPath.row];
        return cell;
    }


Mitesh Khatri's answer worked for me, although I changed the order of colors used to white as the second color as seen below for what I thought was a better UI. I also used a uicolor generator at www.UIColor.org to find just the right color for my needs. Hopes this helps.

  • (void)tableView:(UITableView *)tableView willDisplayCell:(UITableViewCell *)cell forRowAtIndexPath:(NSIndexPath *)indexPath {

    if (indexPath.row % 2 == 0) {
        [cell setBackgroundColor:[UIColor colorWithRed:81.0/255.0 green:102.0/255.0 blue:145.0/255.0 alpha:0.1]];
    }
    else {
        [cell setBackgroundColor:[UIColor whiteColor]];
    
0

上一篇:

下一篇:

精彩评论

暂无评论...
验证码 换一张
取 消

最新问答

问答排行榜