Dilip Manek
Dilip Manek

Reputation: 9143

Which method will be called when we hold the UITableViewCell

When we select UITableViewCell than - (void)tableView:(UITableView *)tableView didSelectRowAtIndexPath:(NSIndexPath *)indexPath called.

But which method will be called if we hold the UITebleViewCell. Guys my problem is that I have created a tableview which contain large cell and in that cell I am setting various view an view's background color.

When I select the cell, the background color of my cell will be gone. I have solved this problem by setting view background color again in didSelectRowAtIndexPath method like this.

- (void)tableView:(UITableView *)tableView didSelectRowAtIndexPath:(NSIndexPath *)indexPath
{
    UITableViewCell *selectedCell = [tableView cellForRowAtIndexPath:indexPath];

    UIView *vLineview=[selectedCell viewWithTag:1];
    vLineview.backgroundColor = [UIColor colorWithRed:(89/255.0) green:(89/255.0) blue:(89/255.0) alpha:1];
}

This done the trick and my view background color will displayed but when I hold the UITableViewCell than it will gone again.

How can I solve this? Do I have to and gesture recognizer to detect long touch and implement my view background method in it? Or there is any other method available for that.

Upvotes: 2

Views: 487

Answers (4)

Burhan Ahmad
Burhan Ahmad

Reputation: 728

Pleasese see method named -(void)beginUpdates
Call this method if you want subsequent insertions, deletion, and selection operations (for example, cellForRowAtIndexPath: and indexPathsForVisibleRows) to be animated simultaneously. for more detail visit apple documentation in below link
UITableView Class Refrence

Also try [cell setSelectionStyle:UITableViewCellSelectionStyleNone];

Upvotes: 0

Irshad Mansuri
Irshad Mansuri

Reputation: 407

Try with set cell selection style none like this in cellForRowAtIndexPath

[cell setSelectionStyle:UITableViewCellSelectionStyleNone];

Upvotes: 1

Sam Meadley
Sam Meadley

Reputation: 227

Is this an issue with the UITableViewCell remaining selected after you tap on the row?

If row selection is not required, make sure you call deselectRowAtIndexPath:animated at the end of your tableView:didSelectRowAtIndexPath method.

[tableView deselectRowAtIndexPath:indexPath animated:YES];

Upvotes: 0

stosha
stosha

Reputation: 2148

You can subclass UITableViewCell and override this method:

- (void) setSelected: (BOOL) selected
            animated: (BOOL) animated
{
    [super setSelected: selected
              animated: animated];

    // Configure the view for the selected state
}

Upvotes: 0

Related Questions