当我在 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