0

UINavigationController ExのサブビューであるUIViewがあります。

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

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

「theSubView」内に配置したすべてのラベルとボタンが表示されますが、どのタッチにも反応しません。

UIButtontheSubView」のサブビューではない場合は機能しますが、それが自己のサブビューである場合は機能します。

だから私の質問は、「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 に答える