I am trying to implement a 'SETTINGS page' like split view with a table view on the left and an image view on the right. Everything is fine but there is a delay in table view cell touch if try to tap it faster. DidSelectRowAtIndex
path is not getting called but the cell blinks.
What I've tried,
moved image changing logic into
willSelectRowAtIndexPath
fromDidSelectRowAtIndex
removed everything from delegate methods (to check whether is it due to loading of image)
How can I solve this wired problem?
TableDatasource
- (UITableViewCell *)tableView:(UITableView *)tableView cellForRowAtIndexPath:(NSIndexPath *)indexPath
{
static NSString *cellIdentifier = @"tutorialCell";
CustomTableViewCell *cell = [tableView dequeueReusableCellWithIdentifier:cellIdentifier];
if (cell == nil) {
NSArray *nib = [[NSBundle mainBundle] loadNibNamed:@"TutorialTableCell" owner:nil options:nil];
cell = [nib objectAtIndex:0];
}
NSDictionary * dic = [dictArray objectAtIndex:indexPath.row];
cell.tutorialText.text = [dic valueForKey:TUTORIAL_TEXT];
cell.tutorialImage.image = [UIImage imageNamed:[dic valueForKey:TUTORIAL_ICON]];
cell.contentView.backgroundColor = [UIColor colorWithHex:@"#36393D" alpha:1.0];
UIView *bgColorView = [[UIView alloc] init];
[bgColorView setBackgroundColor:[UIColor colorWithHex:@"#1f1f1f" alpha:1.0]];
[cell setSelectedBackgroundView:bgColorView];
return cell;
}
TableView Delegate
- (void)tableView:(UITableView *)tableView didSelectRowAtIndexPath:(NSIndexPath *)indexPath
{
NSDictionary * dic = [dictArray objectAtIndex:indexPath.row];
_tutorialImageView.image = [UIImage imageNamed:[dic valueForKey:TUTORIAL_IMAGE]];
}