UITableView,UITableViewCell内容在设备轮换时消失

时间:2014-10-24 14:32:50

标签: ios uitableview

我使用以下代码以编程方式创建了一个UITableView

[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

但是由于tableviews调整大小,我发现tableview单元格的内容消失了。

cell.textlabel消失,并且还添加了任何其他自定义视图。

一旦使用MPI旋转单元格,它似乎只影响tableview

所以我的问题是: -

当您调整/旋转包含的tableview时,如何防止单元格内容消失?

2 个答案:

答案 0 :(得分:0)

将单元格的contentView框架设置为单元格边界,然后将其autoresizingMasks设置为flexibleHeight和flexibleWidth。

答案 1 :(得分:0)

对tableviewcell进行子类化并在子类中进行转换轮换似乎解决了这个问题。