UITableViewCell doesn't get deselected when swiping back quickly

后端 未结 16 1365
甜味超标
甜味超标 2021-01-29 23:49

I\'ve now updated three of my apps to iOS 7, but in all three, despite them not sharing any code, I have the problem where if the user swipes to go back in the navigation contro

16条回答
  •  抹茶落季
    2021-01-30 00:28

    After running into this myself today I found out that this apparently is a fairly well-known problem with UITableView, its support for interactive navigation transitions is slightly broken. The folks behind Castro have posted an excellent analysis and solution to this: http://blog.supertop.co/post/80781694515/viewmightappear

    I decided to use their solution which also considers cancelled transitions:

    - (void)viewWillAppear:(BOOL)animated
    {
        [super viewWillAppear:animated];
    
        NSIndexPath *selectedRowIndexPath = [self.tableView indexPathForSelectedRow];
        if (selectedRowIndexPath) {
            [self.tableView deselectRowAtIndexPath:selectedRowIndexPath animated:YES];
            [[self transitionCoordinator] notifyWhenInteractionEndsUsingBlock:^(id context) {
                if ([context isCancelled]) {
                    [self.tableView selectRowAtIndexPath:selectedRowIndexPath animated:NO scrollPosition:UITableViewScrollPositionNone];
                }
            }];
        }
    }
    

提交回复
热议问题