滚动UITableView单元格并将其展开

3
我有一个带有自定义单元格的UITableView。当我点击它们时,单元格会展开。但是,我遇到了一个问题:当我点击被设备底部屏幕边缘切掉一半的单元格时,它不能像其他单元格那样向上移动并展开显示详细信息,而是直接展开。因此,我无法知道该单元格是否已经展开,需要手动滚动tableView才能查看。
以下是我的单元格点击代码。我实现了相关的单元格展开方法并且单元格可以正常展开。
- (void)cartTableView:(UITableView *)iTableView didSelectRowAtIndexPath:(NSIndexPath *)iIndexPath {
    [self.temporaryCartTable scrollToRowAtIndexPath:iIndexPath atScrollPosition:UITableViewScrollPositionMiddle animated:YES];
    [self expandOrCollapseCartCellAtIndex:iIndexPath];
}

- (void)expandOrCollapseCartCellAtIndex:(NSIndexPath *)iIndexPath {

    self.selectedIndexPath = iIndexPath;
    [self.temporaryCartTable beginUpdates];
    [self.temporaryCartTable reloadRowsAtIndexPaths:@[iIndexPath] withRowAnimation:UITableViewRowAnimationAutomatic];
    [self.temporaryCartTable endUpdates];
}
2个回答

3

扩展后,调用scrollToRowAtIndexPath,它应该能正确定位您的单元格。


0
你需要检查你正在扩展的单元格的矩形(rectForRowAtIndexPath:)是否完全在表视图的边界内(基于contentSizecontentOffset),使用CGRectContainsRect,如果不是-并且只部分可见-那么你需要将其滚动到表视图的底部/顶部。

我尝试通过滚动到顶部,但最后一个单元格无法正常工作。如果我点击最后一个表格单元格,它只能滚动到一半。 - Abhinav
你需要在展开后滚动它。同时,当你滚动到底部时,你需要提供不同的位置。 - sha
如何知道滚动条应该向上或向下滚动 - Prashant Tukadiya
如果您的单元格是最后一个 - 您需要滚动到底部。 - sha

网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接