UIview内にUIScrollViewを追加し、スクロールビューにボタンを1つ追加しました。そのボタンを押すと、uiscrollview内にテーブルが生成されます.今私の問題は、ユーザーがスクロールビュー内のどこかに触れたときにそのテーブルを削除したいことです.I touches begin メソッドを使用してみましたが、スクロール ビューでは機能しません。
前もって感謝します
ユーザーがボタンをタップすると、スクロール ビューはタッチを受け取りません。代わりに、次のようなメソッドを作成し、ボタンのターゲットとして追加します。
- (void)hideTable {
[yourTableView setHidden:YES];
}
ボタンを作成するとき、またはviewDidLoad
nib から読み込まれる場合は、メソッドをボタンのターゲットとして追加します。
[yourButton addTarget:self action:@selector(hideTable)
forControlEvents:UIControlEventTouchUpInside];
touchesBegan
サブクラス化しない限り、メソッドは機能しません。
UITapGestureRecognizer
あなたのためのソリューションです。次のように使用できます。
...
UITapGestureRecognizer *tapRecognizer=[[UITapGestureRecognizer alloc] initWithTarget:self action:@selector(didTapScrollView)];
[scrollView addRecognizer:tapRecognizer];
[tapRecognizer release]; //If not ARC
-(void)didTapScrollView
{
[tableView removeFromSuperview];
}