Znalazłem kilka postów, które są podobne do mojego problemu, ale nie do końca takie same.duplikaty wierszy w tableview na uitableviewcell
W mojej aplikacji użytkownik może poruszać się między kilkoma dostępnymi wynikami, aby przejść do pożądanego rezultatu. Kiedy użytkownik idzie naprzód, potem w tył, potem w przód, itp. Zauważalne jest, że wiersze są przerysowywane/ponownie pisane, a tekst staje się pogrubiony i odważniejszy.
Zauważyłem, że w niektórych postach może to odnosić się do sposobu, w jaki tworzę wiersze, używając metody uilable w metodzie cellforrowatindexpath
.
Czy jest coś, co muszę zrobić, aby wiersze nie były ponownie wypełniane/przerysowywane za każdym razem, gdy użytkownik porusza się do przodu i do tyłu między widokami tabeli? Czy muszę dodać coś do poniższego kodu lub dodać coś do metody viewwillappear (aktualnie jest "reloaddata" w viewwillappear dla tabeli, ale nie wydaje się, aby pomóc)?
Oto mój kod:
- (UITableViewCell *)tableView:(UITableView *)tableView cellForRowAtIndexPath:(NSIndexPath *)indexPath
{
static NSString *CellIdentifier = @"Cell";
UITableViewCell *cell = [tableView dequeueReusableCellWithIdentifier:CellIdentifier];
if (cell == nil)
{
cell = [[[UITableViewCell alloc] initWithFrame:CGRectZero reuseIdentifier:CellIdentifier] autorelease];
}
cell.accessoryType = UITableViewCellAccessoryDisclosureIndicator;
UILabel *label = [[[UILabel alloc] init] autorelease];
label.font = [UIFont fontWithName:@"Arial-BoldMT" size:20];
label.frame = CGRectMake(10.0f, 10.0f, 220.0f, 22.0f);
label.textColor = [UIColor blackColor];
label.backgroundColor = [UIColor clearColor];
label.opaque = NO;
label.text = [mapareaArray objectAtIndex:indexPath.row];
[cell.contentView addSubview:label];
CustomCellBackgroundView *bgView = [[CustomCellBackgroundView alloc] initWithFrame:CGRectZero];
bgView.borderColor = [UIColor clearColor];
bgView.fillColor = [UIColor whiteColor];
bgView.position = CustomCellBackgroundViewPositionSingle;
cell.backgroundView = bgView;
return cell;
}
Dziękuję bardzo za to. Duża pomoc. Ostatnie pytanie na ten temat - nie mam tła programistycznego, więc nie jestem pewien, co masz na myśli, używająC#define w pliku nagłówkowym. Jaka jest składnia, aby to zrobić? Widziałem to już wcześniej i próbowałem wstawić "#define kMyTag" w nagłówku, ale to nie działa ...Zakładam, że musisz zdefiniować kMyTag na wartość, ale nie wiesz, jaka będzie składnia tego. Możesz pomóc? – SKayser