UILabel无法从Superview中删除

时间:2015-02-03 01:03:15

标签: ios objective-c

我使用以下代码,并在getter方法中实例化标签:

-(UILabel *)switchUpLabel
{
    if (!_switchUpLabel) _switchUpLabel = [[UILabel alloc]init];

    return _switchUpLabel;
}

-(void)shouldShowSwitchupLabel:(BOOL)show
{
   if (show)
   {
      self.switchUpLabel.text = @"";
      self.switchUpLabel.font = [UIFont systemFontOfSize:30.0];
      [self.switchUpLabel sizeToFit];
      self.switchUpLabel.frame = CGRectMake(self.imageView.center.x-self.switchUpLabel.frame.size.width/2, 10, self.switchUpLabel.frame.size.width, self.switchUpLabel.frame.size.height);
      [self.view addSubview:self.switchUpLabel];
   }
   else [self.switchUpLabel removeFromSuperview];
}

当我执行[self.switchUpLabel removeFromSuperview];时,标签仍保留在屏幕上。唯一可以获得标签的方式" off"是做

之类的事情
self.switchUpLabel.text = @""; 

一些注意事项:

1 /我尝试在add语句之后立即添加remove语句,这应该导致标签根本不显示。但是,标签确实显示并且从未被删除。

2 /我验证标签不是nil并且在两种情况下指向相同的标签(我将标签对象输出到NSLog)

3 /我将remove语句放在主队列块中,以确保它在主线程上执行。没有不同。

0 个答案:

没有答案