1

ユーザーがタッチすると開き、ユーザーがオプションのいずれかを選択しないと閉じる UIControl のサブクラスとしてメニューを構築しています。

メニューを閉じることができるように、ユーザーが外に触れたときに追跡する方法を探しています

4

2 に答える 2

0

私が本当にやりたいことは、ビュー全体をカバーする大きなボタンを作成し、それをメニューの下に配置することです。または、何かに触れないようにして、何かを起こさせたいと考えています。

    UIButton *bigBackButton = [[UIButton alloc]initWithFrame:self.view.frame];
    [bigBackButton addTarget:self action:@selector(backButtonSelected) forControlEvents:UIControlEventTouchDown];
    [bigBackButton setBackgroundColor:[UIColor colorWithRed:0 green:0 blue:0 alpha:0.5]];
    [self.view addSubview:bigBackButton];

}
- (void)backButtonSelected:(UIButton *)button {
    //get rid of the button
    [button removeFromSuperview];

    //do whatever else you need to do
    [yourmenu dosomething];
}

一部のアプリでは、ボタンを暗くして半透明にして、メニューを強調表示します。それ以外の場合は、ほとんど見えないようにします。[UIColor colorWithWhite:1.0 alpha:0.01];

メニュー ルーチンにこれらの同じルーチンを追加できます。メニューが UIView のサブクラスである場合は、親ビューのフレームを渡すか、layoutSubviews ルーチンで検索することができます。

あなたのlayoutSubviewsで、これを追加してください:

    UIButton *bigBackButton = [[UIButton alloc]initWithFrame:self.superview.frame];
    [bigBackButton addTarget:self action:@selector(backButtonSelected) forControlEvents:UIControlEventTouchDown];
    [bigBackButton setBackgroundColor:[UIColor colorWithRed:0 green:0 blue:0 alpha:0.5]];
    [self.view addSubview:bigBackButton];

そして、メニュー クラスにも backButtonSelected メソッドを配置します。

于 2013-08-23T05:13:57.430 に答える