为什么tableview单元格文本没有根据方向改变,而单元格高度确实如此

时间:2013-11-04 12:46:29

标签: ios uitableview uiinterfaceorientation landscape-portrait

我的代码如下,

- (UITableViewCell *)tableView:(UITableView *)tableView cellForRowAtIndexPath:(NSIndexPath *)indexPath
    {
        UITableViewCell * cell = [tableView dequeueReusableCellWithIdentifier:@"Color Cell" forIndexPath:indexPath];    
    ......
    ......
    ......

    if (UIInterfaceOrientationIsLandscape([[UIDevice currentDevice] orientation])) {
        cell.textLabel.font = [UIFont fontWithName:@"HelveticaNeue-Thin" size:14.0f];
    } else {
        cell.textLabel.font = [UIFont fontWithName:@"HelveticaNeue-Thin" size:24.0f];
    }
    return cell;
}

- (CGFloat)tableView:(UITableView *)tableView heightForRowAtIndexPath:(NSIndexPath *)indexPath
{
    CGFloat rowHeight;
    if (UIInterfaceOrientationIsLandscape([[UIDevice currentDevice] orientation])) {
        rowHeight = ([[UIScreen mainScreen] bounds].size.width - 52) / [colorArray count];
    } else {
        rowHeight = ([[UIScreen mainScreen] bounds].size.height - 64) / [colorArray count];
    }
    return rowHeight;
}

运行时,表格视图可以自动重新定位,也可以自动重新定位单元格高度。但是单元格文本大小不会相应地改变。

为什么呢?如何解决?

左边是肖像,右边是风景

left is on portrait, right is on landscape

1 个答案:

答案 0 :(得分:0)

在设备中更改方向时,

UITableViewCell不会重新加载,在更改方向后重新加载表格视图