簡體   English   中英

在外面點擊時從另一個子視圖中刪除一個子視圖

[英]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.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM