UITableView
'da özel bir hücre için NSIndexPath
'u almam gerekiyor. İşte sorun: Özel hücremde özel hücremden editingDidBegin
editingDidBegin
benim UITableViewController
'a gönderdiğimde. Benim UITableViewController
, UITextField
düzenlemeye başladı ve UITextField
ilk yanıtlayıcı olduğu hücre görünümüne kaydırmak için tablo görünümünü görüntülemek istediğinizde UITableView
yeniden boyutlandırın. Ancak, UITextField
'un düzenlendiği hücrenin indexPath
'unu nasıl iade edeceğimi anlayamıyorum. Çok fazla yol denedim ama hala çalışmıyor. Tek yönlü şudur: Ben [self.tableV indexPathForSelectedRow]
satırını NSLog
eğer benim cstomCell sınıfta ben hep bile onun her zaman olmasa 0.Özel hücreden NSIndexPath döndürün? (UITableView)
cevap
Sadece hücreye için bir değer vermek 0 döndürür [self setSelected:YES]
sonra benim TV kumandasından kullanarak satırı seçin tag
özelliği. Eğer bu
NSIndexPath *indexPath = [self.tableView indexPathForCell:nextResponderCell];
gibi NSIndexPath alabilirsiniz hücreyi bir kez sen içinde cell.textField.delegate = self;
yerleştirebilirsiniz özel hücrede bir UITextField beri Sonra sonra bu
UITableViewCell *cell = (UITableViewCell *)[self.tableView viewWithTag:tagValue];
arayarak bu hücreyi alabilirsiniz
- (UITableViewCell *)tableView:(UITableView *)tableView cellForRowAtIndexPath:(NSIndexPath *)indexPath
veri kaynağı yöntemi. Bu şekilde, Özel Hücrede bir NSNotification ayarlamak zorunda kalmayacaksınız. Ayrıca, bu aynı yöntemle size Şimdi UITextField temsilci ayarladığınız hem hücreleri metin bu cell.textField.tag = indexPath.row;
gibi sahada ve bu cell.tag = indexPath.row;
gibi hücreyi etiketleyebilir, artık UITableViewController sınıfında bu yöntemi yerleştirebilirsiniz
- (void)textFieldDidBeginEditing:(UITextField *)textField {
CustomCell *cell = (CustomCell *)[self.tableView viewWithTag:textField.tag];
NSIndexPath *indexPath = [self.tableView indexPathForCell:cell];
}
Yukarıdaki UITextField temsilci yöntemi, şu anda seçtiğiniz hücrenin indexPath dizinini almalıdır.
ben şöyle benim hücrelerini etiketlemek istiyorum:
/* Create a tag based on the section and row of a cell(used to retrive the cell for the beginEditingNextCell method. */
-(NSInteger)tagForIndexPath:(NSIndexPath*)path {
return path.section * 1000 + path.row + 1;
}
diğer yolu özel temsilci kullanarak beginEditing verileri aktarmak için, ve sonra senin yolunu anlamaya kullanabileceğiniz bir hücre modeli içermektedir Verileri nasıl depoladığınıza bağlı olarak.
Kontrol dışarı benim github proje, bu klavye için yeniden boyutlandırma ve sonraki düzenlenebilir hücreye sekme yanı sıra bu durumun ele alınması kodu vardır: .. https://github.com/andrewzimmer906/XCell
Github projeniz tam bir karmaşa, en az 20 hata ve derleme konusunda uyarılar. Lütfen bana daha fazla kod verebilir misiniz, sadece sorumu ilgilendirir misiniz? 50 tane açık lütuf var. – JonasG
bu kodu deneyin
- (void)textFieldDidBeginEditing:(UITextField *)textField
{
UITableView *tableView;
UITableViewCell* superViewCell = [self returnSuperCellViewOfTextField:textField];
if(superViewCell)[tableView scrollToRowAtIndexPath:[tableView indexPathForCell:superViewCell] atScrollPosition:UITableViewScrollPositionMiddle animated:YES];
}
-(id)returnSuperCellViewOfTextField:(id)viewToCheck
{
id superView = [viewToCheck superview];
if([viewToCheck isKindOfClass:[UITableViewCell class]] && superView)return superView;
else if(([viewToCheck respondsToSelector:@selector(superview)] && superView)) return [self returnSuperCellViewOfTextField:superView];
return nil;
}
bu (aşağıda daha önce verdiğim cevap) birberi her hücrede ?:
UITableViewCell *cell = (UITableViewCell *)[self.tableView viewWithTag:tagValue];
then once you have the cell you can get the NSIndexPath like this
NSIndexPath *indexPath = [self.tableView indexPathForCell:nextResponderCell];
birden texfields varsa hala çalışır mı Özel hücredeEğer
- (UITableViewCell *)tableView:(UITableView *)tableView cellForRowAtIndexPath:(NSIndexPath *)indexPath
veri kaynağı yönteminde cell.textField.delegate = self;
yerleştirebilirsiniz. Ayrıca, aynı yöntemde, bu hücrelere ait metin alanlarını bu cell.textField.tag = indexPath gibi etiketleyebilirsiniz.kürek çekmek; ve bu hücre gibi hücre.tag = indexPath.row; Şimdi UITextField temsilci ayarladığınız
, artık
- (void)textFieldDidBeginEditing:(UITextField *)textField {
CustomCell *cell = (CustomCell *)[self.tableView viewWithTag:textField.tag];
NSIndexPath *indexPath = [self.tableView indexPathForCell:cell];
Ben 8 hücreleri ile bir tableView sahiptir ve her hücrede i 6 texfields var ve ayrıca UITableViewController sınıfında bu yöntemi yerleştirebilirsiniz tableview dinamiktir, bu yüzden kullanıcı daha fazla hücre ekleyebilir ... ancak kullanıcının her bir metin alanına girdiği metnin nasıl kaydedileceği konusunda sıkıntı yaşıyorum. "Cell.textField.tag = indexPath.row" ile denetleyici, içinde bulunduğum texfield'ı tanımlar mı?
- 1. UITableView Özel Kaydırma Çubuğu
- 2. Bir UICollectionView NSIndexPath nasıl artırılır
- 3. UITableView özel UIView kopyaları
- 4. NSMutableDictionary'da NSIndexPath anahtarını kullanan sorunlar?
- 5. Özel UITableView Dinamik Hücre Yüksekliği
- 6. UITableView SectionIndexTitle Özel Görünüm
- 7. UITableView
- 8. UITableView
- 9. UITableview
- 10. Düz UITableView
- 11. TableView için NSIndexPath oluşturma
- 12. UITableView
- 13. Özel bir hücreden ana görünümdeki bir etikete veri iletişiminde bulunmak için temsilciler nasıl kullanılır?
- 14. UITableview
- 15. Web API'sinde özel hata nesneleri döndürün
- 16. UIImage'ı Döndürün?
- 17. UITableView
- 18. Swift - UIViewController içindeki UITableView, UITableView işlevleri
- 19. Yukarıdaki hücreden veri alın
- 20. Nasıl Convert NSIndexPath Int Int?
- 21. UITableView statik hücresi özel bir boyuta nasıl ayarlanır?
- 22. UITableView hücresine nasıl programlanır?
- 23. TableView için yeni bir NSIndexPath nasıl edinilir?
- 24. UITableView nasıl yeniden düzenlenebiliyor?
- 25. UITableView tembel yükleme optimizasyonu
- 26. UITableView Özel Başlık Bölümü Beyaz çizgi
- 27. Özel seçimler ekledikten sonra ekranda UITableView ofseti
- 28. Statik satırda özel hücreler oluşturma UITableView
- 29. UITableView hücre ekle Animasyon
- 30. UITableView düzenleme modu çalışmıyor
Sadece "çerçevesini" almak istemez miydin? – aopsfan