Я работаю с UITableView, с UITableViewCell.
Мое приложение поддерживает альбомную ориентацию, поэтому я создал 2 UITableViewCell: один для portraid и один для ландшафта.
В моем методе cellForRowAtIndexPath это мой код
static NSString *CellIdentifier;
static NSString *NibNamed;
UIDeviceOrientation deviceOrientation = [UIApplication sharedApplication].statusBarOrientation;
if (deviceOrientation != UIDeviceOrientationLandscapeLeft &&
deviceOrientation != UIDeviceOrientationLandscapeRight)
{
CellIdentifier= @"Cell1";
NibNamed = @"cell_news";
}
else
{
CellIdentifier= @"Cell2";
NibNamed = @"cell_news_landscape";
}
[[NSBundle mainBundle] loadNibNamed:NibNamed owner:self options:NULL];
UITableViewCell *cell = [tableView dequeueReusableCellWithIdentifier:CellIdentifier];
if (cell == nil)
{
NSArray *nib = [[NSBundle mainBundle] loadNibNamed:NibNamed owner:self options:nil];
cell = [nib objectAtIndex:0];
}
///here i add title, description, ecc... in my UITableViewCell
Тогда в случае с AuthorAteotateToInterfaceOrientation я написал это:
- (BOOL)shouldAutorotateToInterfaceOrientation:(UIInterfaceOrientation)interfaceOrientation {
[my_table reloadData];
return YES;
}
Где проблема?
Если я запускаю приложение в портретном режиме, когда я поворачиваю устройство в первый раз, ничего не происходит (а UITableCellView - это Portrait_table_cell). Когда я поворачиваю устройство во второй раз (и нахожусь в портретном или в верхнем положении), я вижу landscape_table_cell (и, конечно, я не вижу весь текст, потому что он выходит с экрана).
Итак ... кроме первого раза, в другой раз, когда я поворачиваю устройство, я вижу неправильный table_cell_view !!
Знаете почему?
Спасибо!