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