如何在IOS中调用UITableView的ScrollViewDidScroll委托方法

时间:2014-06-27 10:41:33

标签: ios objective-c uitableview uiscrollviewdelegate

我有UITableView,因为我正在加载评论照片..

我在每行中水平滚动图像,并使用注释水平垂直滚动用户照片。

我想在用户评论照片时更新单个单元格。

scrollviewDidScroll方法中,我有代码动态更新UITableviewCell的高度并显示注释。因为我的要求是相对于滚动的照片的评论动态地增加自定义单元格的高度。我正在单元格中显示最新的三条评论。它应根据该照片的0或1或2或3条评论动态更新高度..

所以,我尝试过以下代码..用于更新单行..

[self.photosTable beginUpdates];
[self.photosTable reloadRowsAtIndexPaths:[self.photosTable indexPathsForVisibleRows] withRowAnimation:UITableViewRowAnimationAutomatic];

[self.photosTable endUpdates];

[self scrollViewDidScroll:self.photosTable];//As UITableView is sub class of UIScrollview I wrote like that

但是scrollviewDidScroll没有打电话。如果我滚动表格,那么只有它正在调用..

请提出我出错的想法..

先谢谢..

2 个答案:

答案 0 :(得分:2)

scrollviewDidScroll是一种委托方法,在滚动UITableView时自动调用。

如果要滚动UITableView,请尝试使用以下代码:

NSIndexPath *indexPath = [NSIndexPath indexPathForRow:n inSection:0];
    [self.tableView scrollToRowAtIndexPath:indexPath
                    atScrollPosition:UITableViewScrollPositionTop
                            animated:YES];

答案 1 :(得分:1)

正如其他人所指出的那样,你不应该调用自己的委托方法。

这似乎是XY problem

退后一步,解释一下你在这里想要完成的事情。为什么需要调用scrollviewDidScroll方法?