iOS UIButton加在window上点击无效果问题

时间:2024-04-30 17:03:20

UIButton加在window上,点击没有效果,找了很久,原来是没有加上这名:[self.window makeKeyAndVisible];

self.window = [[UIWindow alloc]initWithFrame:[[UIScreen mainScreen] bounds]];
ViewController *vc = [[ViewController alloc] init];
self.window.rootViewController = vc;
self.window.backgroundColor = [UIColor whiteColor];
[self.window makeKeyAndVisible]; view1 = [[UIView alloc] initWithFrame:CGRectMake(, , , )];
view1.backgroundColor = [UIColor blueColor];
[self.window addSubview:view1]; UIView *view2 = [[UIView alloc] initWithFrame:CGRectMake(, , , )];
view2.backgroundColor = [UIColor yellowColor];
[self.window addSubview:view2]; UIView *view3 = [[UIView alloc] initWithFrame:CGRectMake(, , , )];
view3.backgroundColor = [UIColor redColor];
[self.window addSubview:view3]; UIButton *button = [UIButton buttonWithType:UIButtonTypeRoundedRect];
button.frame = CGRectMake(, , , );
button.userInteractionEnabled = YES;
button.backgroundColor = [UIColor greenColor];
[button setTitle:@"change" forState:UIControlStateNormal];
[button addTarget:self action:@selector(changeView) forControlEvents:UIControlEventTouchUpInside];
[self.window addSubview:button];
NSLog(@"%@",self.window.subviews);
- (void)changeView
{
[self.window bringSubviewToFront:view1];
NSLog(@"%@",self.window.subviews);
}

不要直接加在window上,加在ViewController view上点击有效果

view1 = [[UIView alloc] initWithFrame:CGRectMake(, , , )];
view1.backgroundColor = [UIColor blueColor];
[self.view addSubview:view1]; UIView *view2 = [[UIView alloc] initWithFrame:CGRectMake(, , , )];
view2.backgroundColor = [UIColor yellowColor];
view2.tag = ;
[self.view addSubview:view2]; UIView *view3 = [[UIView alloc] initWithFrame:CGRectMake(, , , )];
view3.backgroundColor = [UIColor redColor];
[self.view addSubview:view3]; UIButton *button = [UIButton buttonWithType:UIButtonTypeRoundedRect];
button.frame = CGRectMake(, , , );
button.userInteractionEnabled = YES;
button.backgroundColor = [UIColor greenColor];
[button setTitle:@"change" forState:UIControlStateNormal];
[button addTarget:self action:@selector(changeView) forControlEvents:UIControlEventTouchUpInside];
[self.view addSubview:button];
NSLog(@"%@",self.view.subviews);
- (void)changeView
{
[self.view bringSubviewToFront:view1];
UIView *view = [self.view viewWithTag:];
view.backgroundColor = [UIColor purpleColor];
NSLog(@"%@",self.view.subviews);
}

iOS UIButton加在window上点击无效果问题iOS UIButton加在window上点击无效果问题