原程序是这样写的:
//UIImageView _Tom = [[UIImageView alloc] init]; _Tom.frame = [UIScreen mainScreen].bounds; _Tom.image = [UIImage imageNamed:@"angry_00.jpg"]; [self.view addSubview:_Tom]; //UIButton UIButton *nockHead = [[UIButton alloc] init]; nockHead.frame = CGRectMake(10, 300, 60, 60); [nockHead setImage:[UIImage imageNamed:@"drink"] forState:UIControlStateNormal]; [nockHead addTarget:self action:@selector(test) forControlEvents:UIControlEventTouchUpInside]; [_Tom addSubview:nockHead];
运行后发现点击按钮没有任何反应,网上搜资料后得知UIImageView默认是不接受任何事件的,button加到imageView后,也接收不到事件,解决办法有两种:
1、设置UIimageView的 setUserInteractionEnabled 属性为YES;
2、UIImageView和UIbutton都作为view的子视图,然后设置imageview在button的后边显示;
[nockHead sendSubviewToBack:_Tom];
第二种方法没有第一种方法方便,如果要添加多个按钮,每个按钮都需要设置显示在imageview前面,所有推荐第一种方法。