Когда я помещаю UIViewController в мой контроллер UINavigation, например:
[(UINavigationController *)self.parentViewController pushViewController:[[[Fonts alloc] initWithNibName:@"Fonts" bundle:nil] autorelease] animated:YES];
Где Fonts.xib - это UIView, в котором только UITableView управляется объектом Fonts, который является подклассом UIViewController и действует как источник данных UITableView.и делегировать.
В объекте Fonts я создаю UITableViewCell, например:
- (UITableViewCell *) tableView: (UITableView *) tableView cellForRowAtIndexPath: (NSIndexPath *) indexPath {
UITableViewCell *cell = [tableView dequeueReusableCellWithIdentifier: @"BlahTableViewCell"];
if (!cell) {
cell = [[UITableViewCell alloc]
initWithStyle: UITableViewCellStyleDefault
reuseIdentifier: @"BlahTableViewCell"];
[cell autorelease]; // Delete for ARC
}
return cell;
}
И затем я изменяю шрифт ячейки здесь:
- (void)tableView:(UITableView *)tableView willDisplayCell:(UITableViewCell *)cell forRowAtIndexPath:(NSIndexPath *)indexPath {
[cell.textLabel setFont:[(UIFont *)[self.listOfFonts objectAtIndex:indexPath.row] fontWithSize:cell.textLabel.font.pointSize]];
cell.textLabel.text = [(UIFont *)[self.listOfFonts objectAtIndex:indexPath.row] fontName];
}
listOfFonts isNSArray объектов UIFont.
Когда вид отображается, он выглядит как UITableView без измененных шрифтов
Если я вызываю reloadData на UITableView или перетаскиваю UITableViewCells за пределы экранас моим пальцем, и пусть они отскочат назад, они перерисовываются, и вид ячеек отображается с метками с измененными шрифтами.
Кажется, проблема в том, что UITableViewCells отрисовываются слишком рано.Если я откладываю их отрисовку, все выглядит правильно, но я хочу, чтобы UITableView отображался правильно, когда UINavigationController сдвигает мой вид на место.
Есть идеи, что я делаю неправильно?
РЕДАКТИРОВАТЬ:Я загрузил простой и понятный пример своей проблемы в Dropbox.http://dl.dropbox.com/u/5535847/UITableViewIssue.zip