gpt4 book ai didi

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

转载 作者:塔克拉玛干 更新时间:2023-11-01 21:24:28 25 4
gpt4 key购买 nike

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

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com