In my table view I am setting the the selection style inside
- (void)tableView:(UITableView *)iTableView didSelectRowAtIndexPath:(NSIndexPath *)iIndexPath {
MyCell *aCell = (MyCell *)[iTableView cellForRowAtIndexPath:iIndexPath];
aCell.selectionStyle = UITableViewCellSelectionStyleBlue;
Now, the selection style changes on the second tap and not on the first tap. Once a cell is tapped then it works fine if you come back and select it again. What is the reason for this?
I guess the reason for this is that the
tableView:didSelectRowAtIndexPath:method gets called when the cell have already been selected (surprise!). So the default selection style is applied before the method gets called first time, i.e. before you do youraCell.selectionStyle = UITableViewCellSelectionStyleBlue. When the selection style was changed once, apparently it remains for subsequent calls (taps). To fix this, you have to set the selection style intableView:cellForRowAtIndexPath:ortableView:willSelectRowAtIndexPath:methods, which are called before selecting the cell.