简体   繁体   中英

Strange behavior after selecting cell by code

I ran into some strange behaviour after I selected a cell using this code :

NSIndexPath * indexPath = [NSIndexPath indexPathForRow:1 inSection:0];

CustomCell * cell = (CustomCell*)[_myTableView cellForRowAtIndexPath:indexPath];

[cell setSelected:YES animated:NO];

After this i couldn't select exactly this cell it just didn't respond and

-(void)tableView:(UITableView *)tableView didDeselectRowAtIndexPath:(NSIndexPath *)indexPath

was never called.

This wasn't called either:

-(void)tableView: (UITableView *)tableView didSelectRowAtIndexPath:(NSIndexPath *)indexPath 

What i am doing wrong guys?

According to Apple's documentation it is expected behavior that the methods you mention are never called after programmatically selecting a cell. More info is in this post .

You need to call both methods manually because manually cell selection does not call delegate method.

[cell setSelected:YES animated:NO];
[self tableView:_myTableView didSelectRowAtIndexPath:indexPath];

The technical post webpages of this site follow the CC BY-SA 4.0 protocol. If you need to reprint, please indicate the site URL or the original address.Any question please contact:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM