IOS:将UITableView的方向从水平更改为垂直

时间:2015-10-22 06:18:28

标签: ios objective-c uitableview orientation

我正在使用UITableView显示数据的项目中工作。我的项目方向是Landscape。现在我想为我的项目添加纵向方向模式,以便任何用户都可以在纵向和横向模式下使用应用程序。 是否有任何可用的代码或方法,我将UITableView的方向从水平方向更改为垂直方向?

我想要这样的方向 enter image description here

enter image description here

2 个答案:

答案 0 :(得分:1)

我相信您只需要设置项目以支持纵向方向。之后,当您旋转设备或模拟器时,{{1}}将会旋转。

我创建了一个简单的项目来测试它。检查output此处。

请注意,有时,视图正确旋转,有时不旋转。一定是个bug。

答案 1 :(得分:1)

只需开发2个具有唯一标识符的不同原型,根据当前方向在cellForRowAtIndexPath中提供它们。

- (UITableViewCell *)tableView:(UITableView *)tableView cellForRowAtIndexPath:(NSIndexPath *)indexPath
{
    if (UIInterfaceOrientationIsPortrait(self.interfaceOrientation)) {

        LatestNewsCell *cell = (LatestNewsCell *)[tableView dequeueReusableCellWithIdentifier:@"portraitCell" forIndexPath:indexPath];

        // configure cell

        return cell;

    } else {

        LatestNewsCell *cell = (LatestNewsCell *)[tableView dequeueReusableCellWithIdentifier:@"landscapeCell" forIndexPath:indexPath];

        // configure cell

        return cell;
    }
}

- (void)didRotateFromInterfaceOrientation:(UIInterfaceOrientation)fromInterfaceOrientation
{
    [self.tableView reloadData];
}

如果单元格中包含更多标签,您只需为这些标签创建其他IBOutlet,并将现有标签重复用于两个方向中使用的标签。