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

  • Floortile83

    Floortile83

    16 Ocak 2010
  • NCIX Tech Tips

    NCIX Tech Ti

    2 Ocak 2007
  • olinerd

    olinerd

    23 AĞUSTOS 2007