当我在 iphone sdk 中滚动 tableview 时如何调用服务器?

Posted

技术标签:

【中文标题】当我在 iphone sdk 中滚动 tableview 时如何调用服务器?【英文标题】:How to make a call to server when I scroll the tableview in iphone sdk? 【发布时间】:2011-12-16 12:03:00 【问题描述】:

我想在我向上滚动表格视图时发送一个请求,在我向下滚动时发送另一个请求。我不知道如何实现这一点。谁能建议我该怎么做??

谢谢你, 莫尼什。

【问题讨论】:

【参考方案1】:

UITableViewDelegate 协议符合 UIScrollViewDelegate,所以您只需在您的 UITableViewDelegate 实现中直接实现 -scrollViewWillBeginDragging 和 -scrollViewDidScroll 方法,如果实现类设置为您的委托,它们将被自动调用UITableView。

只需执行:

- (void)scrollViewWillBeginDragging:(UIScrollView *)scrollView

    NSLog(@"done");


另请参考:

- (void)scrollViewDidEndDragging:(UIScrollView *)scrollView willDecelerate:(BOOL)decelerate; // called on finger up if user dragged. decelerate is true if it will continue moving afterwards

- (void)scrollViewDidEndScrollingAnimation:(UIScrollView *)scrollView; // called when setContentOffset/scrollRectVisible:animated: finishes. not called if not animating

【讨论】:

:非常感谢您的及时回复。我使用了委托方法 scrollViewWillBeginDragging,当我滚动 uo 和向下时,调用相同的方法。如何处理 tableview 的上下滚动? 看我的回答,里面有关于contentOffset的描述【参考方案2】:

使用 UIScrollViewDelegate 中的方法。 UITableViewDelegate 继承了它们。

【讨论】:

【参考方案3】:

UITableView 是 UIScrollView 的子类,UITableViewDelegate 符合 UIScrollViewDelegate。因此,您附加到 table view 的委托将获得诸如 scrollViewDidScroll: 之类的事件,并且您可以跟踪 table view 的实例变量 'contentOffset' 以找出 tableView 向上或向下移动的位置。

另外我建议你使用类似的东西:

    [NSThread detachNewThreadSelector:@selector(yourRequestMethodInProperThreadBody) toTarget:self withObject:nil];

为了在请求执行时不影响表格视图的移动。

【讨论】:

以上是关于当我在 iphone sdk 中滚动 tableview 时如何调用服务器?的主要内容,如果未能解决你的问题,请参考以下文章

如何在 iPhone SDK 中单击按钮时水平滚动 ScrollView

在 iphone sdk 中动态创建多个 UITextfield

iPhone SDK - UITableCell 的 UITextField 子视图给出了绘图问题?

iphone SDK:不能在图像数组中对角滚动?

如何在 iPhone SDK 中检测 PDF 文档的方向

iPhone sdk UITableView 单元重用标识符