Monish Kumar
Monish Kumar

Reputation: 2848

Problem in customize cell selection Style in UITableView in iPhone

In my application ,I am using Grouped style for TableView. In that I want to customize the cell selection Style.I want that selection Style to be red.

I am using the below code for that:

UIView *bgColorView = [[UIView alloc] init];
[bgColorView setBackgroundColor:[UIColor redColor];

[cell setSelectedBackgroundView:bgColorView];
[bgColorView release];

By using the above code. I have a problem.Since I have taken grouped Style table , in the selection of first and last rows, the selection is appear with sharp edged rectangle instead of appeaing round Corners.

Can Anyone Help me in this. Thanks in Advance.

Upvotes: 6

Views: 3545

Answers (4)

Rahul Nair
Rahul Nair

Reputation: 381

Try this ,

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

    static NSString *CellIdentifier = @"CellIdentifier";
    UITableViewCell *cell = [tableView dequeueReusableCellWithIdentifier:CellIdentifier];
    if (cell == nil) {
        cell = [[[UITableViewCell alloc] initWithFrame:CGRectZero reuseIdentifier:CellIdentifier] autorelease];
        cell.selectedBackgroundView = [[[UIImageView alloc] initWithImage:[UIImage imageNamed:@"SelectedCellBackground.png"]] autorelease];
    }

    // Cell configuration takes place here
}

Upvotes: 3

Vibhooti
Vibhooti

Reputation: 1203

add QuartzCore framework. and import QuartzCore/QuartzCore.h framework in .m file. and after that add following code in cellForRowAtIndexPath Method.

UIImageView *imv = [[UIImageView alloc]init];
imv.backgroundColor=[UIColor redColor];
[cell setSelectedBackgroundView:imv];
CALayer *layer = imv.layer;
[layer setMasksToBounds:YES];
[layer setCornerRadius:10.0];
[imv release];

Upvotes: 1

Ken
Ken

Reputation: 31161

Override -(void)setSelected:animated: in your subclass.

- (void)setSelected:(BOOL)selected animated:(BOOL)animated
{
  if (selected)
    [self setBackgroundColor:[UIColor redColor]];
  else
    [self setBackgroundColor:[UIColor whiteColor]];
}

You can add fancy animation here to blend in and fade out the background upon selection and deselection if animated is YES.

In general UITableViewCell can be a bit awkward to subclass, be patient here.

Upvotes: 0

Emre KOC
Emre KOC

Reputation: 1

 UIImageView *imageVieww=[[UIImageView alloc] initWithFrame:CGRectMake(0, 0, cell2.bounds.size.width, cell2.bounds.size.height)];


    imageVieww.image=[UIImage imageNamed:@"mavilik.png"];

     [cell2 setSelectedBackgroundView:imageVieww];

     [imageVieww release];

Upvotes: -2

Related Questions