繁体   English   中英

UIButton不能总是显示

[英]UIButton could not always show

我创建了一个UIButton并将其添加到我的视图中:

btn=[[UIButton alloc] init];
[btn setFrame:CGRectMake(0,rect.size.height-52, 70, 52)];
btn.imageEdgeInsets = UIEdgeInsetsMake(0,13,16,0);
btn.titleEdgeInsets = UIEdgeInsetsMake(35,-42,0, 0);
[btn addTarget:self action:@selector(btnClicked:) forControlEvents:UIControlEventTouchUpInside];
[self.view.window addSubview:btn];

-(void)doEnable:(BOOL)enable{
    if(enable){
      [btn setBackgroundImage:[UIImage imageNamed:@"1.png"] forState:UIControlStateNormal];
      [btn setImage:[UIImage imageNamed:@"2.png"] forState:UIControlStateNormal];
      [btn setTitle:@"enter" forState:UIControlStateNormal];
      [btn setHidden:NO];

    //    [self.view bringSubviewToFront:_turn_button];
    }
    else{
      [btn setBackgroundImage:nil forState:UIControlStateNormal];
      [btn setImage:nil forState:UIControlStateNormal];
      [btn setTitle:@"  " forState:UIControlStateNormal];
      btn.hidden = YES;
    }
}

WillDidAppear中,使用YES调用doEnable;在WillDidDisappear使用否,然后,当我进入视图时,该按钮应显示在左下角。

奇怪的是,有时它会出现,有时却不会。 但是即使它无法显示,它仍然可以接收触摸事件,始终会调用btnClicked方法。 为什么?

我认为您应该在viewDidAppear和viewDidDisappear中调用doEnable方法,因为不能保证更新ViewWillAppear和viewWillDisappear中的UI,因为您的视图可能尚未加载。

更改此:

[self.view.window addSubview:btn];

对此:

[self.view addSubview:btn];

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM