[英]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.