UIVut中的UIButton作为子视图而不是攻丝(无动作,无颜色变化)

时间:2012-05-10 06:31:16

标签: iphone objective-c uiview uibutton subview

我有一个UIView是UINavigationController的子视图 实施例

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

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

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

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

所以我的问题是如何在“TheSubView”(UIView)工作中制作Button? 它没有点亮或任何东西。

1 个答案:

答案 0 :(得分: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只能响应自己界限内的触摸,这就是为什么你的按钮不响应任何触摸的原因。