簡體   English   中英

將UISwipeGestureRecognizer附加到多個視圖

[英]Attach UISwipeGestureRecognizer to Multiple Views

我有一個帶有普通視圖的視圖控制器。 在該視圖中,我有4個子視圖。 我需要每個人對UISwipeGestureRecognizer做出反應。 我迷上了意見,以UISwipeGestureRecognizer在Interface Builder和迷上UISwipeGestureRecognizerIBAction 一切都很好。 他們都對UISwipeGestureRecognizer做出反應。

但是,我需要采取行動來做一些不同的事情,具體取決於稱為IBAction視圖。 我該怎么辦? 這是IBAction代碼:

- (IBAction)swipe:(UISwipeGestureRecognizer *)sender
{
    switch (view)
    {
        case view1:
            //do something
            break;

        case view2:
            //do something
            break;

        case view3:
            //do something
            break;

        default:
        //do something
        break;
    }
}

我該如何處理?

我將為每個視圖分配一個標簽。 這樣,您仍然可以使用switch語句將它們區分開,而不必保留對每個視圖的引用。 例如:

- (IBAction)tapSignature:(UISwipeGestureRecognizer *)sender
{
    NSLog(@"swiped");

    switch (sender.view.tag)
    {
        case 1:
            NSLog(@"1");
            break;

        case 2:
            NSLog(@"2");
            break;

        case 3:
            NSLog(@"3");
            break;

        default:
            NSLog(@"4");
            break;
    }
}
- (IBAction)swipe:(UISwipeGestureRecognizer *)sender
{
    if (sender.view == view1) {
        //do something
    }
    if (sender.view == view2) {
        //do something
    }
    if (sender.view == view3) {
        //do something
    }
}

不要使簡單復雜化。 此外,如果要與另一個筆尖重用同一控制器,則使用標簽將迫使您在另一個筆尖中定義相​​同的標簽,這是不好的設計。

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

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