【发布时间】:2013-04-21 14:17:11
【问题描述】:
使用 IB,我创建了一个包含几个按钮的小子视图。我的控制器从 xib 文件中读取小视图并将其作为子视图添加到主视图中。它加载正常,我可以看到子视图及其所有按钮。据我所知,它还连接到控制器中的 IBOutlets 和 IBActions。
但是,当我按下按钮时,什么也没有发生!事实上,当我按下一个按钮超级视图的 touchesBegan 被调用! 超级视图还包含一个“普通按钮”(即我的子视图的兄弟),并且该按钮可以正常工作!问题:为什么我的子视图上的按钮不起作用?
-(void) loadMultibutt{
self.buttErase = nil; // test if the outlet connects
NSArray *arr = [[NSBundle mainBundle]
loadNibNamed:@"multibutt_ipad" owner:self options:nil];
UIView *viewButts = [arr objectAtIndex:0];
ViewWorkbench* vw = (ViewWorkbench*) self.view;
[vw addMultibuttView:viewButts];
// now, buttErase != nil.
NSSet *setTest = [self.buttErase allTargets];
NSLog(@"setTest = %@", setTest); // This works!
}
【问题讨论】:
-
您是否启用了用户交互 - 在 xib 文件中或通过设置 UIView 属性 userInteractionEnabled?
-
@CharliePrice 是的,在 xib 文件中启用了用户交互。
-
检查 UIView 的大小。可能是它的大小小于其中的内容(子视图),并且您没有剪切它。这允许您查看所有子视图,但您将无法与它们进行交互。试试这个 [theView setClipsToBounds:YES];并检查您是否仍然看到子视图。如果你不这样做,就是这样。如果是这样,只需在 IBuilder 上将其放大即可。
-
@sEnC 谢谢,我必须深入研究这个!当我调用 [theView setClipsToBounds:YES]; 时,所有按钮都变得不可见; !不过,视图的框架大小正是它应该的大小 (110x184),大到足以容纳按钮...