SORU
29 EYLÜL 2008, PAZARTESİ


Nasıl birisi bir iPhone sallıyor seziyorum?

Birisi iPhone sallıyor tepki istiyorum. Onlar sıkışırlar, sadece şiddetle bölünmeye ilgili ikinci el salladı olduğunu özellikle umurumda değil. Herkes bu algılamak için nasıl biliyor mu?

CEVAP
10 Temmuz 2009, Cuma


3.0, şimdi daha kolay bir yol var - yeni hareket olayların içine kanca.

Ana numara olarak firstResponder sallamak olay iletilerini almak istediğiniz bazı UİView (UİViewController değil) olması gerekir. İşte olaylar sallamak için herhangi bir UİView kullanabileceğiniz kod:

@implementation ShakingView

- (void)motionEnded:(UIEventSubtype)motion withEvent:(UIEvent *)event
{
    if ( event.subtype == UIEventSubtypeMotionShake )
    {
        // Put in code here to handle shake
    }

    if ( [super respondsToSelector:@selector(motionEnded:withEvent:)] )
        [super motionEnded:motion withEvent:event];
}

- (BOOL)canBecomeFirstResponder
{ return YES; }

@end

Kolayca dönüştürme herhangi bir UİView (hatta sistem görünümleri) bir bakış alabilirsiniz sallamak olay sadece sınıflara görünümü ile sadece bu yöntem (ve daha sonra seçerek bu yeni tip yerine temel tip İB, ya da kullanma o zaman ayrılırken bir görünüm).

Görünüm denetleyicisi, ilk cevap olmak için bu görünüm ayarlamak istiyorum:

- (void) viewWillAppear:(BOOL)animated
{
    [shakeView becomeFirstResponder];
    [super viewWillAppear:animated];
}
- (void) viewWillDisappear:(BOOL)animated
{
    [shakeView resignFirstResponder];
    [super viewWillDisappear:animated];
}

Sakın unutma, eğer başka bir görüş haline ilk cevap kullanıcı eylemleri (gibi bir arama çubuğu veya metin giriş alanı) olacak da gerek geri sallayarak görünüm ilk yanıtlayıcı durumu zaman diğer görüş istifa etti!

Bu yöntem, eğer HAYIR applicationSupportsShakeToEdit ayarlarsanız bile çalışır.

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

YORUMLAR

SPONSOR VİDEO

Rastgele Yazarlar

  • bunnyboxx

    bunnyboxx

    17 NİSAN 2008
  • David Wills

    David Wills

    31 Aralık 2007
  • Matthew Smith

    Matthew Smit

    24 Mayıs 2010