首先我有一个自定义的tableview子类,它使用带有drawRect的uiview子类来处理单元格的内容视图。既然我需要将单元格选为特定颜色,我会在willDisplayCell中设置单元格的selectedBackgroundView:
这很有效,直到我需要在显示tableview时滚动并突出显示/选择(但不调用didSelectCell)。当我尝试调用selectRowAtIndexPath时:tableview滚动到单元格,但所选颜色仅显示在contentView不是的单元格中(通过显示箭头)。
现在我相信这是因为selectRowAtIndexPath:突出显示单元格然后滚动到它。并且在突出显示单元格之前需要调用willDisplayCell。但是,只有当行滑入或滑出动画时,才会调用isDisplayCell"即在突出显示之后和滚动之前。
我通过调用scrollToRowAtIndexPath确认了这一点:然后是selectRowAtIndex:animated:scrollPosition:包装在perfomSelector中:afterDelay:
如何在不使用perfomSelector的情况下解决此问题:afterDelay:?