0

ビューコントローラがあり、同じビューコントローラで別のビューを作成し、それをサブビューとして追加しました。ボタンをクリックすると、サブビューが表示され、画面の半分が表示されます。ユーザーがタッチしたときにサブビューを閉じるにはどうすればよいですか。スーパービュー(背景のメインビュー)?

4

2 に答える 2

1

ジェスチャレコグナイザを使用し、スーパービューのシングルタップアクションでサブビューのremoveFromSuperviewを呼び出すことができます。

viewDidLoadに次のようなものを追加します。

    UITapGestureRecognizer *singleTap = [[UITapGestureRecognizer alloc] initWithTarget:self action:@selector(handleSingleTap:)];

    [singleTap setNumberOfTapsRequired:1];
    [mainView addGestureRecognizer:singleTap];

次に、関数を追加します。

- (void) handleSingleTap: (id) sender
{

    [secondView removeFromSuperView];
}
于 2012-12-11T15:32:41.323 に答える
0

サブビューを削除するタイミングをより詳細に制御するには、次のように mainViewController のレスポンダー メソッドをオーバーライドできます。

-(void)touchesEnded:(NSSet *)touches withEvent:(UIEvent *)event{
    [subview removeFromSuperView];
}

このようにして、ユーザーが画面のどこをタップしたかを実際に確認し、それに応じて応答することができます。

于 2012-12-11T15:55:01.603 に答える