1

我有一个UITableViewController应用程序的初始控制器,称为LoginTableViewController.

我想显示一个UITableView纵向模式和另一个横向模式

目前,我为横向模式设置了另一个UITableViewController( )。LoginTableViewController_L我宣布UITableView从风景UITableViewControllerLoginTableViewController希望我可以UITableViews根据方向切换。旋转手机后,我只是得到一个黑色/空白屏幕,顶部有标题栏。

有没有更好的方法来解决这个问题?

@property (strong, nonatomic) IBOutlet UITableView *LoginTableView;
@property (strong, nonatomic) IBOutlet UITableView *LoginTableView_Landscape;
4

1 回答 1

1

使用单个 TableView。

如果您想要完全不同的外观(不仅仅是调整大小的相同单元格)

检测设备方向并根据当前方向加载不同的单元格。

- (UITableViewCell *)tableView:(UITableView *)tableView cellForRowAtIndexPath:(NSIndexPath *)indexPath {

    static NSString *CellIdentifier = @"Cell";

    UIInterfaceOrientation interfaceOrientation = [[UIApplication sharedApplication] statusBarOrientation];

    if (UIInterfaceOrientationIsPortrait(interfaceOrientation)) {

        PortraitCell *cell = [tableView dequeueReusableCellWithIdentifier:CellIdentifier];
        if (cell == nil)
        {
            cell = [[PortraitCell alloc]init];
        }

    } else {

        LandscapeCell *cell = [tableView dequeueReusableCellWithIdentifier:CellIdentifier];
        if (cell == nil)
        {
            cell = [[LandscapeCell alloc]init];
        }
    }

    return cell;
}

当设备方向改变时调用

[myTableView reloadData];

*PsudoCode 显示概念。

于 2013-07-30T22:07:34.483 回答