views:

1623

answers:

2

By default there is three selection style in iphone - table view.

gray - blue - none.

I don't need gray or blue.

I want to set my custom.

For example In normal situation a cell should have "aaaa.png" background.

& Selected cell should have "bbbbb.png" background.

I have tried to apply cell.backgroundView & cell.selectedBackground view. However it isn't working.

If you have any kind of idea about this, please help me.

Thanks in advance for helping me.

+3  A: 

I tried following & it worked.

-(UITableViewCell *)tableView:(UITableView *)tableView cellForRowAtIndexPath:(NSIndexPath *)indexPath {    
NSString *CellIdentifier = [NSString stringWithFormat:@"%i",indexPath.row];
UITableViewCell *cell = [tableView dequeueReusableCellWithIdentifier:CellIdentifier];
if (cell == nil) {
 XML_FitnessPrograms *t=[arrayPrograms objectAtIndex:indexPath.row];
 cell=((indexPath.row%2)==0) ? 
 [self getCellContentView:CellIdentifier program_name:t.program_name alterNate:NO indexPath:indexPath] :
 [self getCellContentView:CellIdentifier program_name:t.program_name alterNate:YES indexPath:indexPath] ;
 CGRect a=CGRectMake(8, 0, 300, 44);
 UIImageView *aImg=[[UIImageView alloc] initWithFrame:a];
 UIImageView *bImg=[[UIImageView alloc] initWithFrame:a];
 aImg.image=[UIImage imageNamed:@"white-rect-tab.png"]; //arrow.png
 bImg.image=[UIImage imageNamed:@"white-rect-tab-copy.png"];
 [aImg setContentMode:UIViewContentModeScaleToFill];
 [bImg setContentMode:UIViewContentModeScaleToFill];
 cell.backgroundView=aImg;
 cell.selectedBackgroundView=bImg;
 [aImg release];
 [bImg release];
}
return cell;
}
-(UITableViewCell*)getCellContentView:(NSString*)cellIdentifier program_name:(NSString*)program_name alterNate:(BOOL)alterNate indexPath:(NSIndexPath*)indexPath
{
UITableViewCell *cell; UILabel *tmp;
CGRect label1Frame=CGRectMake(5, 0, 260, 44);
cell=[[[UITableViewCell alloc] initWithStyle:UITableViewCellStyleDefault reuseIdentifier:cellIdentifier] autorelease];
cell.frame=CGRectMake(8, 0, 280, 44);
cell.backgroundColor=[UIColor clearColor];
tmp=[[UILabel alloc] initWithFrame:label1Frame]; 
tmp.textColor=[UIColor colorWithRed:(9.0/255.0) green:(68.0/255) blue:(85.0/255) alpha:1.0];
[tmp setFont:[UIFont fontWithName:@"Arial-BoldMT" size:15]];  tmp.text=program_name; [tmp setShadowColor:[UIColor lightGrayColor]];
tmp.backgroundColor=[UIColor clearColor]; [cell.contentView addSubview:tmp]; [tmp release];
[cell setSelectionStyle:UITableViewCellSelectionStyleGray];
return cell;
}
sugar
A: 

here's one way to do it with only 1 line of code:

cell.selectedBackgroundView = [[[UIImageView alloc] initWithImage:[UIImage imageNamed:@"pink.png"]] autorelease];

obviously you'll need to make the image

hanumanDev