0

我有一个 UIView,它是UINavigationController Ex 的子视图。

- (void) ViewDidload{
    UIView *theSubView = [[UIView alloc] init];

    UIButton *button = [UIButton . . . .]
    . . . .
    [theSubView addSubView:button];
    [self.view addSubview:theSubView];
}

我放在“theSubView”中的所有标签和按钮都显示出来了,但它们对任何触摸都没有反应。

如果它不是“ UIButtontheSubView”的子视图,但当它是 self 的子视图时,它可以工作。

所以我的问题是如何使“TheSubView”(UIView)中的按钮工作?它不亮或任何东西。

4

1 回答 1

10

如果我是对的,那么您的问题实际上是您使用

[[UIView alloc] init]

而不是指定的初始化器

initWithFrame:(CGRect)frame

您正在创建一个边界为 0,0 的视图。您应该使用指定的初始化程序创建它并执行类似的操作

/*
 * note that the values are just sample values.
 * the view's origin is  0,0 and it's width 320, it's height 480
*/
UIView *theSubView = [[UIView alloc] initWithFrame:CGRectMake(0,0,320,480];

如果你设置

theSubView.clipsToBounds = YES

结果应该是您根本看不到您的按钮,因为视图的大小是 0,0。

UIView 只能响应自己范围内的触摸,这就是为什么您的按钮不响应任何触摸的原因。

于 2012-05-10T06:37:32.400 回答