SORU
18 Aralık 2013, ÇARŞAMBA


Düğmesini içeri UI table view cell

Tableview ve tablo için ayrı bir uç hücre şablonu ile bir ViewController. Hücre şablonu bazı düğmeler var. Tablo görünümü tanımlıyorum, hücreyi Görünüm denetleyicisi içinde tıklandığında Endeksi ile birlikte düğmeye tıklayın erişim istiyorum.

Uç tanımlanan aldığım yere UItableview TableTemplate.h, TableTemplate.m TableTemplate.xib var ViewController.h ViewController.m var. ViewController.m hücre dizin düğmesini tıklatın olay istiyorum

Bunu nasıl yapabilirim yardım?

CEVAP
13 Temmuz 2014, Pazar


Delegeler gitmek için bir yoldur.

Diğer cevaplar görünümlerini kullanarak görülen güncelliğini yitirmiş olabilir. Yarın kim bilir başka bir sarıcı olabilir ve cell superview]superview]superview]superview] kullanmak gerekebilir. Ve eğer etiketleri kullanırsanız n ile başka koşullar varsa sayısı hücre tanımlamak için sona erecekti. Bütün bunları önlemek için delegeler ayarlayın.(Böylece yeniden oluşturmakta kullanılabilir hücre sınıf. Temel sınıf olarak aynı hücre sınıfını kullanabilirsiniz ve tüm yapmanız gereken temsilci yöntemleri uygulamak.)

Birinci(temsilci) düğmesini tıklama iletişim kurmak için hücre tarafından kullanılan bir arayüz (protokol) ihtiyacımız var. (Ayrı oluşturabilirsiniz .h protokolü için dosya ve iki tablo bulunur görünümü denetleyicisi ve özel hücre sınıfları YA da öylesine bir tablo görünümü içinde denetleyicisi dahil olacak özel bir hücre sınıf ekleyin)

@protocol CellDelegate <NSObject>
- (void)didClickOnCellAtIndex:(NSInteger)cellIndex withData:(id)data;
@end

Özel hücrede bu Protokol vardır ve masa denetleyicisi görüntüleyin. Ve tablo görünümü denetleyicisi bu Protokol ile onaylar emin olun.

Özel hücre iki özellik oluşturun :

@property (weak, nonatomic) id<CellDelegate>delegate;
@property (assign, nonatomic) NSInteger cellIndex;

UIButton İBAction temsilci tıklayınız : (Aynı görünüm için geri verilmiş olması gereken özel bir hücre sınıf içinde herhangi bir işlem yapılabilir denetleyicisi)

- (IBAction)buttonClicked:(UIButton *)sender {
    if (self.delegate && [self.delegate respondsToSelector:@selector(didClickOnCellAtIndex:withData:)]) {
        [self.delegate didClickOnCellAtIndex:_cellIndex withData:@"any other cell data/property"];
    }
}

Hücre dequeing sonra kumanda cellForRowAtIndexPath görünümünde tablo, yukarıda özellikleri ayarlayın.

cell.delegate = self;
cell.cellIndex = indexPath.row; // Set indexpath if its a grouped table.

Ve tablo görünümü denetleyicisi: temsilci uygulamak

- (void)didClickOnCellAtIndex:(NSInteger)cellIndex withData:(id)data
{
    // Do additional actions as required.
    NSLog(@"Cell at Index: %d clicked.\n Data received : %@", cellIndex, data);
}

Bu özel hücre düğme eylemleri tablo görünümünde denetleyicisi için ideal bir yaklaşım olur.

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

YORUMLAR

SPONSOR VİDEO

Rastgele Yazarlar

  • 趣味そうこ♪

    趣味そう

    3 Mart 2010
  • multimediaGEEKS LLC

    multimediaGE

    3 Mayıs 2010
  • sk8ingis4me

    sk8ingis4me

    16 Mart 2006