gpt4 book ai didi

iphone - didSelectRowAtIndexPath 不显示 View

转载 作者:行者123 更新时间:2023-12-03 20:02:35 26 4
gpt4 key购买 nike

我有一个 tableView,当用户选择其中一个单元格时,我会加载一张大图像。

此加载大约需要 10 秒,我想显示一个带有旋转图标的小 View 。

- (void)tableView:(UITableView *)tableView didSelectRowAtIndexPath:(NSIndexPath *)indexPath
{
loadingView = [[LoadingHUDView alloc] initWithTitle: NSLocalizedString(@"Loading image",@"")];
[self.view addSubview:loadingView];
[loadingView startAnimating];
loadingView.center = CGPointMake(self.view.bounds.size.width/2, 150);
[imageView loadImage: path];
[loadingView removeFromSuperview];
}

问题是 View (loadingView)从未显示。似乎对 loadImage 的调用阻止了它的显示。我可以强制显示该 View 吗?

最佳答案

问题是图像的加载占用了线程,因此 View 不会使用旋转图标进行更新。

您需要使用不同的线程,尽管它仍然变得复杂,因为您无法轻松地从后台线程更新 View !

因此,您实际上需要做的是在后台线程中开始加载大图像。

将加载大图像的代码放入另一个方法中,然后在后台线程上运行它,如下所示:

[self performSelectorInBackground:(@selector(loadBigImage)) withObject:nil];

请记住,在 -loadBigImage 方法中,您需要声明一个 NSAutorelease 池:

-(void)loadBigImage {
NSAutoreleasePool *pool = [[NSAutoreleasePool alloc] init];
//Code to load big image up
[pool drain];
}

当它在后台运行时,您的动画加载图标将正常显示。

希望有帮助

关于iphone - didSelectRowAtIndexPath 不显示 View ,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/1362107/

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