Ste*_*n H 3 multithreading objective-c uitableview ios
如何从单独的线程返回后在UITableView上设置内容插入?
这里有一些代码来获取我正在做的事情的要点,也可以在这个问题的范围之外提供建议.
如果没有可用的广告,我的主要目标是折叠webview将进入的区域(由contentInset创建的表格上方的区域).
//In View did Load
[NSThread detachNewThreadSelector:@selector(getBannerAdContent) toTarget:self withObject:nil];
-(void)getBannerAdContent
{
NSAutoreleasePool *pool = [[NSAutoreleasePool alloc] init];
NSString *html = [NSString stringWithContentsOfURL:[NSURL URLWithString:@"http://192.168.0.18:83/PhotoGalleryService.svc/LoadBannerAd/"]];
[self performSelectorOnMainThread:@selector(loadBannerAd:) withObject:html waitUntilDone:NO];
[pool release];
}
-(void)loadBannerAd:(NSString*)html
{
UIWebView *webView = [[UIWebView alloc] initWithFrame:CGRectMake(10, 2, 300, 40)];
[webView loadHTMLString:html baseURL:nil];
webView.delegate = self;
webView.scalesPageToFit = NO;
webView.autoresizingMask = (UIViewAutoresizingFlexibleLeftMargin | UIViewAutoresizingFlexibleRightMargin | UIViewAutoresizingFlexibleTopMargin | UIViewAutoresizingFlexibleBottomMargin);
[self.view addSubview:webView];
[webView release];
UITableView *myTableView = (UITableView*)[self.view.subviews objectAtIndex:0 ];
//The following line is doing nothing.
myTableView.contentInset = UIEdgeInsetsMake(44,0.0,0,0.0);
}
Run Code Online (Sandbox Code Playgroud)
你能给我的任何帮助都将不胜感激.
编辑:一个更彻底的解释......
在我看来,我加载了一个单独的线程.此线程从我设置的服务加载html,然后在webview上设置它.但是,当我走进线路之前,我正在逐步完成
myTableView.contentInset = UIEdgeInsetsMake(44,0.0,0,0.0);
Run Code Online (Sandbox Code Playgroud)
表视图已加载,然后上面的行无效.
干杯,
小智 5
contentInset设置插入大小,但不滚动tableview以显示它.设置contentInset后,如果要向上滚动以显示表视图的顶部,请设置contentOffset.
myTableView.contentOffset = CGPointZero;
Run Code Online (Sandbox Code Playgroud)
| 归档时间: |
|
| 查看次数: |
14800 次 |
| 最近记录: |