TTThumbsViewController在滚动时显示图像
我在扩展TTThumbsViewController
以显示来自外部源的照片。一切工作正常,但我想改变控制器的一种行为:我想在用户仍在滚动时显示/加载图像TTThumbsViewController
,而不仅仅是当用户完成滚动时。TTThumbsViewController在滚动时显示图像
我看到当滚动开始时,请求被暂停,我试图设置它不是NO,但它似乎只是获取图像,并没有实际显示它们,当他们完成加载。
//TTTableViewDelegate.m
- (void)scrollViewWillBeginDragging:(UIScrollView *)scrollView {
[TTURLRequestQueue mainQueue].suspended = YES;
...
}
此外,我挂在开始和结束拖动代表呼吁,试图刷新视图每秒左右,与显示缩略图的希望,我已经打过电话invalidateView
,reload
和一对夫妇更在主线程但似乎没有工作(invalidateModel
不适合我这里的目的)。
任何人都可以指向正确的方向吗?
在此先感谢
EDIT1:有状态栏加载器,如果我滚动,当我使用[TTURLRequestQueue mainQueue].suspended = NO;
,但它实际上并没有获取相关的图片,使用Wireshark证实。
EDIT2:多一点的调试,我发现该请求被编程发送,但我们完成滚动后的反应时只收到,这样看来的NSURLConnection
异步委托方法而scrollView
被滚动不烧成后,但我设法在另一个视图控制器中使用tableView做类似的代码(工作),而不使用three20 lib。
周围的Googling多个线程,我终于实现了我想要的行为的论坛,虽然我改变了,而不是在一部分伸出它three20代码后:在我thumbsViewController
我采取了以下的委托,允许在滚动时提出请求:
-(void)didBeginDragging {
[super didBeginDragging];
[TTURLRequestQueue mainQueue].suspended = NO;
}
我们解决滚动时,我发现NSURLRequest won't fire while UIScrollView is scrolling在TTRequestLoader.m有用,我改变了以下不被处理的连接的问题:
//TTRequestLoader.m
- (void)connectToURL:(NSURL*)URL {
...
//To allow requests while scrolling we must schedule the conenction in other run loop
//_connection = [[NSURLConnection alloc] initWithRequest:URLRequest delegate:self];
//code above was replaced by the one below
_connection = [[NSURLConnection alloc] initWithRequest:URLRequest delegate:self startImmediately:NO];
[_connection scheduleInRunLoop:[NSRunLoop currentRunLoop] forMode:NSRunLoopCommonModes];
[_connection start];
}