我使用以下代码以编程方式创建了一个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时,如何防止单元格内容消失?
答案 0 :(得分:0)
将单元格的contentView框架设置为单元格边界,然后将其autoresizingMasks设置为flexibleHeight和flexibleWidth。
答案 1 :(得分:0)
对tableviewcell进行子类化并在子类中进行转换轮换似乎解决了这个问题。