-1

我在 CustomViewController 的方法 viewDidLoad 中实现了以下代码,以根据我的需要打开/关闭标签可见性:

- (void)viewDidLoad
{
 [super viewDidLoad];

 myLabel.hidden=NO;

if (x==1) {

   myLabel.hidden=YES;//here is correctly hidden
}
else {
    [self.view bringSubviewToFront:myLabel];

    if(!myLabel.hidden){

      NSLog(@"I'm not hidden!");// the log displays correctly! so myLabel is not Hidden but I can't see it!
      [self.view bringSubviewToFront:myLabel];
    }
}

MyLabel 在 CustomViewController.h ("IBOutlet UILabel *myLabel;") 中声明,并连接到 Xib 文件中其对应的 UILabel 接口。

为什么即使它的“隐藏”属性是假的,我也看不到它?

ps将UILabel文本赋值给xib文件中的UILabel接口

谢谢卢卡

解决了谢谢伙计们我觉得很愚蠢。标签不在舞台上,所以我可以看到它。我刚刚重新定位它,现在它工作正常

4

4 回答 4

6

您的代码中有错字:您的出口似乎是,myLabel但您的if声明使用mylabel(应使用大写“L”)。另请注意,此属性的 getterisHidden并不hidden像您预期​​的那样(虽然这不是问题的根源,但 Apple 在他们的文档中说明了它,所以我认为值得一提)。

编辑:

你说:

MyLabel 在 CustomViewController.h ("IBOutlet UILabel *infoPostRist;") 中声明,并连接到 Xib 文件中其对应的 UILabel 接口。

那么,你不应该检查infoPostRist而不是myLabel那时吗?

于 2012-05-09T10:19:56.547 回答
0

(void)viewWillAppear:(BOOL)animated您是否在or中尝试过您的代码- (void)viewDidAppear:(BOOL)animated

加载视图控制器时隐藏/显示视图可能无法正常工作。

于 2012-05-09T11:16:58.707 回答
0

您可以尝试将其从视图中删除:

[myLabel removeFromSuperview];
于 2012-05-09T10:32:51.180 回答
0

为了知识,我回答了我自己的问题:问题是标签不在舞台上,所以我看不到它。我只是重新定位它,现在它工作正常

于 2012-05-21T07:13:37.703 回答