在我的iPhone应用程序中,我有SPGameDesk : UIView
类,从其他类创建它,如:
SPGameDesk* gameDesk = [[SPGameDesk alloc] init];
[gameDesk createWithLevel:5];
[appWindow addSubview:gameDesk];
在我的SPGameDesk
课程中,在一种方法中,我创建了UIButtons
:
holesRow = [[NSMutableArray alloc] init];
for (int i=0; i<3; i++) {
[holesRow addObject:[[UIButton alloc] initWithFrame:CGRectMake((40*i)+5, 150, 30, 30)]];
[[holesRow objectAtIndex:i] setBackgroundColor:[UIColor blueColor]];
[[holesRow objectAtIndex:i] addTarget:self action:@selector(holeSelected:) forControlEvents:UIControlEventTouchUpInside];
[self addSubview: [holesRow objectAtIndex:i]];
}
在SPGameDesk类中有较低的方法:
- (void)holeSelected:(id)sender {
NSLog(@"SELECTED");
}
但是,当我触摸我的按钮时,没有任何反应,就像其他UIView
覆盖了我的按钮(没有其他UIView
),或者像SPGameDesk
已userInteraction
已禁用(我查了一下 - 事实并非如此)。
我的问题在哪里?我该怎么检查?
答案 0 :(得分:1)
您的gameDesk视图的框架是什么?它看起来可能是0,0,0,0。尝试将其设置为父窗口的边界。使用initwithframe而不是init。