SORU
17 EYLÜL 2013, Salı


UİCollectionViewCell uzun basın jest

Bir uzun basın jest tanıyıcı (alt sınıf) UİCollectionView eklemek için nasıl merak ediyorum. Varsayılan olarak eklenir o belgeleri okudum, ama nasıl olduğunu çözemedim.

Yapmak istediğim şey: Bir hücre üzerinde uzun basın ( I have a calendar thingy from github ), aday olan ve daha sonra onunla bir şeyler yapmak. Cep longpressed ne olduğunu bilmek istiyorum. Bu geniş bir soru için üzgünüm, ama ya google veya benzeri daha iyi bir şey bulamadım

CEVAP
17 EYLÜL 2013, Salı


yapman gereken şey şu:

senin myCollectionViewController.h dosyası UIGestureRecognizerDelegate protokol ekleyin

@interface myCollectionViewController : UICollectionViewController<UIGestureRecognizerDelegate>

senin myCollectionViewController.m dosya:

- (void)viewDidLoad
{
    // attach long press gesture to collectionView
    UILongPressGestureRecognizer *lpgr 
       = [[UILongPressGestureRecognizer alloc]
                     initWithTarget:self action:@selector(handleLongPress:)];
    lpgr.minimumPressDuration = .5; //seconds
    lpgr.delegate = self;
    lpgr.delaysTouchesBegan = YES;
    [self.collectionView addGestureRecognizer:lpgr];
}

-(void)handleLongPress:(UILongPressGestureRecognizer *)gestureRecognizer
{
    if (gestureRecognizer.state != UIGestureRecognizerStateEnded) {
        return;
    }
    CGPoint p = [gestureRecognizer locationInView:self.collectionView];

    NSIndexPath *indexPath = [self.collectionView indexPathForItemAtPoint:p];
    if (indexPath == nil){
        NSLog(@"couldn't find index path");            
    } else {
        // get the cell at indexPath (the one you long pressed)
        UICollectionViewCell* cell =
        [self.collectionView cellForItemAtIndexPath:indexPath];
        // do stuff with the cell
    }
}

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

YORUMLAR

SPONSOR VİDEO

Rastgele Yazarlar

  • ibebrent

    ibebrent

    23 Temmuz 2007
  • Jason Rosolowski

    Jason Rosolo

    25 EKİM 2006
  • mist64

    mist64

    30 Mayıs 2006