我刚刚开始进行iPhone开发,遇到了一个烦人的问题。我正在从一个视图转换到另一个视图,但是在此期间我想显示一个加载图像。
控制器当前包含TableView和TabControl。我已经为控件(“加载”图像)添加了图像和标签,并将它们链接到相关属性。然后在主控件中对它们进行@synthesized。
如果我在设计器中将这两个元素都设置为“隐藏”,则它们不会显示。如果我不这样做,他们会这样做 - 这是有道理的。
但是,如果我将它们都设置为隐藏,则以编程方式调用imageView.hidden = NO,它不会“出现”。有什么我想念的吗?如果初始属性设置为hidden = NO,我可以编程设置为YES,但不能返回NO。设置这些控件的.alpha时同样适用。
请参阅下面的我正在使用的代码。任何帮助将不胜感激 - 谢谢:)
- (void)tableView:(UITableView *)tableView didSelectRowAtIndexPath:(NSIndexPath *)indexPath {
ForumThread *thread = [threadsArray objectAtIndex:indexPath.row];
loadingLabel.hidden = NO;
imageView.hidden = NO;
ThreadViewController *threadViewController = [[ThreadViewController alloc] initWithThreadId: [thread threadID]];
loadingLabel.hidden = YES;
imageView.hidden = YES;
[[self navigationController] pushViewController:threadViewController animated:YES];
threadViewController.title = [thread threadTitle];
[threadViewController release];
}
应该有大约2s的间隙,其中图像/标签应该是可见的。任何帮助将不胜感激!
答案 0 :(得分:0)
在您的情况下,标签和imageView将被隐藏。因为隐藏标签没有延迟。您可以使用计时器来延迟隐藏。试试这个。我还没有测试过。
- (void)tableView:(UITableView *)tableView didSelectRowAtIndexPath:(NSIndexPath *)indexPath {
ForumThread *thread = [threadsArray objectAtIndex:indexPath.row];
loadingLabel.hidden = NO;
imageView.hidden = NO;
ThreadViewController *threadViewController = [[ThreadViewController alloc] initWithThreadId: [thread threadID]];
NSTimer *timer = [NSTimer scheduledTimerWithTimeInterval:2 target:self selector:@selector(ShowLabel) userInfo:nil repeats:NO];
[[self navigationController] pushViewController:threadViewController animated:YES];
threadViewController.title = [thread threadTitle];
[threadViewController release];
}
-(void) ShowLabel
{
loadingLabel.hidden = YES;
imageView.hidden = YES;
}