objective-c - 从不同线程返回后在 UITableView 上设置 contentInset

标签 objective-c multithreading ios uitableview

如何在从单独的线程返回后在 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);
}

如果您能给我任何帮助,我们将不胜感激。

编辑: 更彻底的解释......

在我看来确实加载了一个单独的线程。该线程从我设置的服务加载 html,然后在 webview 上设置它。但是,当我逐步执行时,在它到达行之前

myTableView.contentInset = UIEdgeInsetsMake(44,0.0,0,0.0);

表格 View 已经加载,然后上面的行没有效果。

干杯,

最佳答案

contentInset 设置插入大小,但不会滚动 tableview 来显示它。设置 contentInset 后,如果希望它向上滚动以显示表格 View 的顶部,请设置 contentOffset。

myTableView.contentOffset = CGPointZero;

关于objective-c - 从不同线程返回后在 UITableView 上设置 contentInset,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/4810223/

相关文章:

objective-c - 添加匹配样式的按钮/操作

c++ - 对自己的互斥锁类使用lock_guard

ios - UITableViewRowAction - 保留单元格的文本

ios - "A valid provisioning profile for this executable was not found"用于 Xamarin.Forms iOS RELEASE 构建到 iPhone 设备

ios - 无法在 Xcode 5 中设置 SVN

ios - 当 contentOffset 设置为负值时,在 tableview 上无法识别触摸

objective-c - 如何在 cocoa 应用程序中对单选按钮(来自 Storyboard)进行分组?

iphone - Three20 TTLauncherItem样式

reactjs - 在 React js 中对 .map 数据进行排序(在顶部显示最新日期)

objective-c - 在后台生成图像