2014-10-24 3 views
1

Я создал UITableView программно, используя следующий кодUITableView, содержимое UITableViewCell исчезают при вращении устройства

[self createUITableView:categoryTableView 
        frame:CGRectMake(0, [UIApplication currentSize].height - ([UIApplication currentSize].height*0.2) - self.navigationController.navigationBar.frame.size.height - 20, [UIApplication currentSize].width,[UIApplication currentSize].height * 0.2) 
        tag:1 
       rotation:CGAffineTransformMakeRotation(-M_PI_2)]; 

-(void)createUITableView :(UITableView*)tableView frame:(CGRect)frame tag:(NSInteger)tag rotation:(CGAffineTransform)rotation 
{ 
    tableView = [[UITableView alloc]init]; 
    tableView.transform = rotation; 
    tableView.frame = frame; 
    tableView.dataSource = self; 
    tableView.delegate = self; 
    tableView.backgroundColor = [UIColor greenColor]; 
    tableView.tag = tag; 
    tableView.showsHorizontalScrollIndicator = false; 
    tableView.showsVerticalScrollIndicator = false; 
    tableView.bounces = false; 

    [self.view addSubview:tableView]; 
} 

После поворота Tableview я затем будет вращать ячейку для содержимого, которое будет отображаться правильный путь

 cell = [tableView dequeueReusableCellWithIdentifier:MyIdentifier]; 

     if (cell == nil) 
     { 

      cell = [[UITableViewCell alloc] initWithStyle:UITableViewCellStyleDefault 
              reuseIdentifier:MyIdentifier]; 
      cell.transform = CGAffineTransformMakeRotation(M_PI_2); 
      cellImage = [[UIImageView alloc]initWithFrame:CGRectMake(0, 0, widthforTableView,tableView.frame.size.height)]; 
      [cell.contentView addSubview:cellImage]; 
      cell.layer.borderColor = [UIColor lightGrayColor].CGColor; 
      cell.layer.borderWidth = 0.5f; 
      //cell.textLabel.textAlignment = NSTextAlignmentCenter; 
      cellImage.backgroundColor = [UIColor blueColor]; 

     } 

, когда я повернуть устройство я изменить размер UITableView и изменить положение, чтобы соответствовать красиво на экране, я также изменить размер высоты TableView строки и вызвать Tableview reloadData

однако из-за изменения размера таблицы я обнаружил, что содержимое ячеек таблицы исчезло.

cell.textlabel исчезает, а также добавляются любые другие пользовательские представления.

, похоже, влияет только на просмотр таблицы, когда ячейки вращаются с использованием MPI ???

поэтому мой вопрос: -

Как один предотвратить содержимое ячеек от исчезновения при изменении размера/поворота, содержащий TableView?

ответ

0

Настройте рамку contentView вашей ячейки на границы ячеек, а затем установите ее авторезистентные маски для гибкогоHeight и flexibleWidth.

+0

Спасибо stefan за ваш ответ, я попробовал cell.transform = CGAffineTransformMakeRotation (M_PI_2); cell.contentView.frame = cell.bounds; cell.autoresizingMask = UIViewAutoresizingFlexibleHeight | UIViewAutoresizingFlexibleWidth; но по-прежнему имеют ту же проблему – Tom

+0

Ой, подождите, вы вручную преобразуете все элементы интерфейса при изменении ориентации устройства? – nstefan

+0

no Я вручную преобразовываю ячейки и uitableview для создания горизонтального представления таблицы. я нашел путем подклассификации ячейки и вручную преобразование меток и т. д., казалось, исправить проблему – Tom

0

Подклассификация tableviewcell и превращение вращения в подкласс, казалось, разрешило эту проблему.

Смежные вопросы