无法取消隐藏UILabel或UIImageView

时间:2010-08-31 22:50:51

标签: uiimageview ios4 uilabel hidden

我刚刚开始进行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的间隙,其中图像/标签应该是可见的。任何帮助将不胜感激!

1 个答案:

答案 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;
}