隐藏/显示隐藏属性不起作用的UILabel

时间:2012-05-09 09:53:12

标签: objective-c cocoa-touch uilabel

我在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接口。

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

P.s将UILabel文本分配给xib文件中的UILabel接口

感谢 卢卡

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

4 个答案:

答案 0 :(得分:6)

你的代码中有一个拼写错误: 您的商店似乎是myLabel,但您的if语句使用mylabel(应该使用大写字母'L')。另请注意,此属性的getter是isHidden而不是hidden,正如您所料(这不是问题的根源,但Apple在文档中说明了这一点,所以我认为值得一提)。

修改

你说:

  

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

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

答案 1 :(得分:0)

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

[myLabel removeFromSuperview];

答案 2 :(得分:0)

您是否在(void)viewWillAppear:(BOOL)animated- (void)viewDidAppear:(BOOL)animated中尝试了代码?

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

答案 3 :(得分:0)

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