我的代码出现问题,似乎它从未正确执行。
我尝试过UIActivity,Sliders,UITextVieweer等许多东西......但它永远不会改变,
代码正在使用xCode中基于导航的应用程序运行。 loadingTview是一个Textview,
问题是,看看loadingTview在哪里,从不起作用,它总是挂起,用户按下按钮,然后执行此代码。 loadingTview是一个Textview,说“加载”的alpha值为0.4,所以基本上是从网站上下载图像,人们知道它的加载。
我也试过了同样的问题。
我如何进步?
loadingTview.hidden = false;
today = [NSDate date];
dateFormat = [[NSDateFormatter alloc] init];
[dateFormat setDateFormat:@"dd-MM-yyyy"];
dateString = [dateFormat stringFromDate:today];
if (PageEntered == @"page1")
{
NSString *url = [NSString stringWithFormat:@"http://www.imagegoeshere.com/%@.jpg",dateString];
imageURL = [NSURL URLWithString:url];
imageData = [NSData dataWithContentsOfURL:url];
image = [UIImage imageWithData:imageData];
FullScreenImage.image = image;
loadingTview.hidden = true;
[navigationController pushViewController:vFullscreen animated:YES];
}
答案 0 :(得分:0)
我真的不明白你的问题,但我确实看到的东西几乎肯定是错的。这一行:
if (PageEntered == @"page1")
应该是这样的:
if ([PageEntered isEqualToString:@"page1"])
Objective-C不执行运算符重载,因此您的代码正在进行指针比较,而不是值比较。
答案 1 :(得分:0)
我不完全确定问题是什么但是我假设当你从view2转到view3时它会在view2上“挂起”,直到在实际打开view3之前加载图像才显示加载屏幕,对吗?
如果是这种情况,那么您要做的是将图像加载到不同的线程中,以便加载不会阻止view3显示加载屏幕。
看一下NSThread(虽然有更干净/更好的方法)。
基本上在view3的控制器中执行此操作:
- (void) viewDidLoad {
// <First, show your 'Loading...' screen here>
// Then create a thread to load the image:
[NSThread detachNewThreadSelector:@selector(loadImage) toTarget:self withObject:nil];
}
// Then somewhere in the same class define the loading method:
- (void)loadImage {
// Remember to create a new autorelease pool for this thread.
// <Load your image here>
// When image is done loading, call the main thread
[self performSelectorOnMainThread:@selector(imageDoneLoading) withObject:nil waitUntilDone:YES];
}
// Then define the method to call when the image is done
- (void) imageDoneLoading {
// Hide the 'Loading...' screen.
}
如果这不是您的问题,请详细说明实际发生的情况以及问题所在。
祝你好运。