[英]removing a subview from another subview when tapped outside
我正在嘗試構建我的第一個iPhone應用程序,請幫我解決這個問題!! 我將滾動視圖作為控制器視圖的子視圖,並將某些控件(如標簽,按鈕,文本字段和表格視圖)作為此滾動視圖的子視圖放置。 現在,當我點擊按鈕時,我的表格視圖變為可見,但是當我在表格視圖之外點擊時我無法關閉該表格視圖(我的意思是在滾動視圖上點擊)。
下面是我的代碼片段“,我試圖關閉我的表視圖,請幫助我!
- (void)touchesEnded:(NSSet *)touches withEvent:(UIEvent *)event
{
UITouch *aTouch = [touches anyObject];
if (aTouch.tapCount == 1)
{
CGPoint p = [aTouch locationInView:self.scrollview];
if (!CGRectContainsPoint(myTableView.frame, p))
{
myTableView.hidden = YES;
}
}
}
您將這段代碼放在ViewController.m中,以便在您單擊self.view時將其激活。您的scrollView會覆蓋self.view,因此該操作無效。
子類化您的scrollView並在YourScrollView.m中的IB中選擇類型,添加以下代碼:
- (void)touchesEnded:(NSSet *)touches withEvent:(UIEvent *)event
{
UITouch *aTouch = [touches anyObject];
if (aTouch.tapCount == 1)
{
CGPoint p = [aTouch locationInView:self];
for (UIView *aView in self.subviews) {
if (([aView isKindOfClass:[UITableView class]])&&(!CGRectContainsPoint(aView.frame, p)))
{
[aView setHidden:YES];
}
}
}
}
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.