Tak więc specyfikacja klienta chce, aby UITableView zawsze wyświetlał jeden z wierszy, aby użytkownik mógł wchodzić w interakcję z tym kluczowym przyciskiem w dowolnej pozycji UITableView. Po przewinięciu i zobaczeniu rzeczywistego Rzędu za pomocą przycisku, pływająca stopka musi zniknąć i pozwolić użytkownikowi na interakcję z "prawdziwą" komórką, a nie z pływającą wersją.UITableView niestandardowe duplikaty UIView
Doszedłem się z następującego kodu:
- (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;
}
Ale ten kod ma błąd, że nie może wydawać się, aby dowiedzieć się: raz kran autora na UITextBox i wchodzi jakiś tekst to rozpocznie się zachowujesz się nieregularnie, tzn .: 2 lub więcej Komórek pojawia się na ekranie, kiedy ich nie ma! Zasadniczo, gdy wywołuję metodę "hidePostularmeFooterView", nie wydaje się, że znika (dopiero po wprowadzeniu jakiegoś tekstu, jeśli nie wchodzę z nią w interakcję, działa dobrze).
To wydaje się po tym, jak wprowadzić tekst istnieją 2 wersja stopce, oto dowód:
Przez wygląda na to, może to mieć coś wspólnego z tym, jak pokazać/ukryj klawiaturę i sposób jej interakcji z widokami. Na marginesie, czy trzeba cały czas tworzyć ten widok? Zachowałoby się ładniej, gdybyś go raz utworzył i po prostu pokazał i ukrył widok. –