Bu nedenle, müşterinin isteği, UITableView öğesinin, her zaman satırında birine sahip olmasını ister, böylece kullanıcı, bu önemli düğme ile UITableView öğesinin herhangi bir konumunda etkileşim kurabilir. Kaydırdığında ve bu tuş ile gerçek Satır'ı görmeye başladığında, kayan altbilginin kaybolması ve kullanıcının 'gerçek' Hücre ile etkileşime girmesine izin verilmemesi gerekir.UITableView özel UIView kopyaları
Aşağıdaki kod ile geldim:
- (void)scrollViewDidScroll:(UIScrollView *)scrollView
{
if([self isPostularmeRowVisible])
{
[self hidePostularmeFooterView];
}
else
{
[self showPostularmeFooterView];
}
}
-(BOOL)isPostularmeRowVisible
{
NSArray *indexes = [self.tableView indexPathsForVisibleRows];
for (NSIndexPath *index in indexes)
{
if (index.row == 0 && index.section>=DetalleEmpleoPostularmeCell)
{
return YES;
}
}
return NO;
}
-(void) showPostularmeFooterView
{
NSAssert(_state==ESTADO_POSTULACION_NO_POSTULADO, @"NJDetalleEmpleoViewController: This shouldn't happen");
if(!self.footerView)
{
NJDetalleEmpleoPostularmeTableViewCell *footerView = [self.tableView dequeueReusableCellWithIdentifier:kDetalleEmpleoPostularmeCell];
[footerView configureCell:self.detaleAviso];
float h = self.view.frame.size.height-footerView.cellHeight;
footerView.frame = CGRectMake(0,h,self.view.frame.size.width,footerView.cellHeight);
footerView.delegate = self;
self.footerView = footerView;
[self.view addSubview:self.footerView];
[self.view bringSubviewToFront:self.footerView];
}
}
-(void) hidePostularmeFooterView
{
if(self.footerView)
{
[self.footerView removeFromSuperview];
}
self.footerView = nil;
}
Ama bu kod ben anlamaya zorlandığım bir hata vardır: kullanıcı musluk UITextBox üzerinde ve o başlar biraz metin girdiğinde düzensiz davranmak, yani: Hiçbiri olmamalı, ekranda 2 veya daha fazla Hücre görünür! Temel olarak, 'hidePostularmeFooterView' yöntemini çağırdığımda, kaybolmaz gibi görünüyor (Yalnızca bir metin girdikten sonra, eğer onunla etkileşime girmezsem, iyi çalışıyor).
O var ben Altbilgi 2 versiyonu vardır metin girin sonra burada görünüyor kanıtı: Bu gibi bu kaldırmak için daha mantıklı olabilir
, bunu göstermek nasıl bir ilgisi olabilir/klavyeyi ve bunun görünümlerinizle nasıl etkileşimde bulunduğunu gizleyin. Bir yan not olarak, bu görünümü her zaman yaratmanız mı gerekiyor? sadece bir kez oluşturursanız ve sadece görünümü ve gizlemeyi bırakırsanız daha iyi davranır. –