SORU
12 NİSAN 2010, PAZARTESİ


İphone dışında tıklatarak ipad üzerinde Kalıcı ViewControllers kayıtsız SDK

İstediğim için görevden FormSheetPresentation kalıcı bir görünüm Denetleyicisi Kullanıcı musluklar dışında kalıcı bir görünüm...gördüm bir sürü uygulamalar yapıyor (ebay ipad için örnek) ama yapamıyorum nasıl olduğunu belirler beri altında görüşlerini devre dışı dokunduğunda kalıcı görünümleri görüntülenir gibi, bu (onlar zararlı olarak popover belki de?)...Herkes herhangi bir öneriniz var mı?

CEVAP
30 Mayıs 2011, PAZARTESİ


Bir yıl geç kaldım, ama bu oldukça basit yapmak.

Kalıcı görünüm penceresi için hareket algılayıcı denetleyicisi takın

UITapGestureRecognizer *recognizer = [[UITapGestureRecognizer alloc] initWithTarget:self action:@selector(handleTapBehind:)];

[recognizer setNumberOfTapsRequired:1];
recognizer.cancelsTouchesInView = NO; //So the user can still interact with controls in the modal view
[self.view.window addGestureRecognizer:recognizer];
[recognizer release];

İşleme kodu:

- (void)handleTapBehind:(UITapGestureRecognizer *)sender
{
    if (sender.state == UIGestureRecognizerStateEnded)
     {
       CGPoint location = [sender locationInView:nil]; //Passing nil gives us coordinates in the window

 //Then we convert the tap's location into the local view's coordinate system, and test to see if it's in or outside. If outside, dismiss the view.

        if (![self.view pointInside:[self.view convertPoint:location fromView:self.view.window] withEvent:nil]) 
        {
           // Remove the recognizer first so it's view.window is valid.
          [self.view.window removeGestureRecognizer:sender];
          [self dismissModalViewControllerAnimated:YES];
        }
     }
}

Bunun hakkında. HİG lanet olsun, bu yararlı ve genellikle sezgisel bir davranıştır.

Bunu Paylaş:
  • Google+
  • E-Posta
Etiketler:

YORUMLAR

SPONSOR VİDEO

Rastgele Yazarlar

  • HereWeStayKings

    HereWeStayKi

    3 NİSAN 2013
  • Shantanu Sood

    Shantanu Soo

    3 Kasım 2008
  • Tinkernut

    Tinkernut

    28 Aralık 2006