SWRevealViewController หยุดท่าทางการแตะเมื่อผู้ใช้อยู่ด้านหน้า View

ฉันใช้ SWRevealViewController สำหรับการเลื่อนเมนู ฉันได้เพิ่มท่าทางการแตะในมุมมองด้านหน้าโดยใช้:

SWRevealViewController *revealController = [self revealViewController];

[revealController tapGestureRecognizer];

ท่าทางการแตะของฉันใช้งานได้ แต่ปัญหาคือมุมมองด้านหน้าของฉันมีปุ่มที่ต้องแตะเพื่อไปยังหน้าจออื่น มีวิธีใดบ้างที่จะปิดการใช้งานท่าทางการแตะเมื่อเปิดใช้งาน frontView และเปิดใช้งานท่าทางสัมผัสเมื่อกดเมนู?




คำตอบ (3)


ฉันคิดว่าคุณลองสิ่งนี้

สร้างผู้รับมอบสิทธิ์ในชั้นเรียนของคุณ

@interface xxxViewController () <SWRevealViewControllerDelegate>

เกี่ยวกับวิธีการมอบหมายเป็น

  - (void)revealController:(SWRevealViewController *)revealController willMoveToPosition:(FrontViewPosition)position
{
    if (position == FrontViewPositionLeftSide) {
        self.tapGestureRecognizer.enabled = YES;
        // disable your current class action

    }
    else if (position == FrontViewPositionLeft){
        self.tapGestureRecognizer.enabled = NO;
        // enable your current class action


    }
}
person Anbu.Karthik    schedule 08.03.2016
comment
self.tapGestureRecognizer.enabled = YES; เป็นของเปิดเผยคอนโทรลเลอร์ใช่ไหม กล่าวคือ ในเปิดเผยController จะมีเมธอด [revealController tapGestureRecognizer]; จะเปิดและปิดการใช้งานสิ่งนี้ได้อย่างไร? - person JMS; 08.03.2016
comment
ใช่ครับ..... ดูสิ่งนี้สักครั้ง github.com/John-Lluch/ SWRevealViewController/issues/92 - person Anbu.Karthik; 08.03.2016

Import SWRevealViewController.h ในคลาสเมนูเลื่อนออกของคุณ จากนั้นในเมนูเลื่อนของคุณ viewWillAppear วิธีการใส่บรรทัดนี้-

-(void) viewWillAppear:(BOOL)animated
{
    [super viewWillAppear:YES];

   self.revealViewController.frontViewController.revealViewController.tapGestureRecognizer.enabled=false;

}

และในวิธี viewWillDisappear ให้ใส่บรรทัดนี้ -

-(void) viewWillDisappear:(BOOL)animated
{

self.revealViewController.frontViewController.revealViewController.tapGestureRecognizer.enabled=true;

}
person Rohit Khandelwal    schedule 08.03.2016

ในตัวควบคุมมุมมองด้านหน้าให้เพิ่มสิ่งนี้

SWRevealViewController *objRevealViewController = [self revealViewController];
[self.view addGestureRecognizer:objRevealViewController.tapGestureRecognizer];
person Shrikant Tanwade    schedule 08.03.2016