EasyTableView的单元格选择问题

时间:2012-05-08 19:31:14

标签: objective-c ios5 uitableview

我有EasyTableView(https://github.com/alekseyn/EasyTableView)的简单问题

我有许多正常运行的水平滚动表。

我能够选择一个单元格并执行一个segue,但是,一旦新的视图控制器被解除,我就无法再选择该单元格并执行相同的操作,直到我在同一个表格中选择了另一个单元格。

我的问题是:如何以编程方式取消选择以前选择的单元格以重新设置此特定操作。

提前致谢!

1 个答案:

答案 0 :(得分:3)

如果用户在屏幕外滚动选定的tableview单元格然后再返回,则selectedIndexPath会被故意执行。如果您不想要这种持久性,请在委托方法之后添加如下所示的行(在EasyTableView.m中):

- (void)setSelectedIndexPath:(NSIndexPath *)indexPath {

    if (![_selectedIndexPath isEqual:indexPath]) {
        NSIndexPath *oldIndexPath = [_selectedIndexPath copy];

        _selectedIndexPath = indexPath;

        UITableViewCell *deselectedCell = (UITableViewCell *)[self.tableView cellForRowAtIndexPath:oldIndexPath];
        UITableViewCell *selectedCell   = (UITableViewCell *)[self.tableView cellForRowAtIndexPath:_selectedIndexPath];

    if ([delegate respondsToSelector:@selector(easyTableView:selectedView:atIndexPath:deselectedView:)]) {
        UIView *selectedView = [selectedCell viewWithTag:CELL_CONTENT_TAG];
        UIView *deselectedView = [deselectedCell viewWithTag:CELL_CONTENT_TAG];

        [delegate easyTableView:self
                   selectedView:selectedView
                    atIndexPath:_selectedIndexPath
                 deselectedView:deselectedView];

        // Add this line here!
        _selectedIndexPath = nil;
        }
    }
}